|
|
 |
array_diff_assoc (PHP 4 >= 4.3.0, PHP 5) array_diff_assoc -- 带索引检查计算数组的差集 说明array array_diff_assoc ( array array1, array array2 [, array ...])
array_diff_assoc() 返回一个
array,返回一个数组,该数组包括了所有在
array1 中但是不在任何其它参数数组中的值。注意和
array_diff() 不同的是键名也用于比较。
例子 1. array_diff_assoc() 例子 |
<?php
$array1 = array ("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array ("a" => "green", "yellow", "red");
$result = array_diff_assoc($array1, $array2);
/* The result is:
Array
(
[b] => brown
[c] => blue
[0] => red
)
*/
?>
|
|
上面的例子中可以看到键值对 "a" => "green"
在两个数组中都有,因此不在本函数的输出中。与此不同,键值对
0 => "red" 出现在输出中是因为第二个参数中的
"red" 的键名是 1。
键值对 key => value
中的两个值仅在 (string) $elem1 === (string)
$elem2 时被认为相等。也就是说使用了严格检查,字符串的表达必须相同。
注:
注意此函数仅检查多维数组中的一维。当然你可以用
array_diff_assoc($array1[0], $array2[0]);
检查更深的维度。
参见 array_diff(),array_intersect()
和 array_intersect_assoc()。
add a note
User Contributed Notes
array_diff_assoc
carl at thep dot lu dot se
09-May-2003 05:55
To unset elements in an array if you know the keys but not the values, you
can do:
<?php
$a = array("foo", "bar",
"baz", "quux");
$b = array(1, 3); // Elements to
get rid of
foreach($b as $e)
unset($a[$e]);
?>
Of course this makes most sense if $b has
many elements or is dynamically generated.
| |