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() 返回一个数组,该数组包括了所有在 array1
中但是不在任何其它参数数组中的值。注意和 array_diff() 不同的是键名也用于比较。
array1
The array to compare from
array2
An array to compare against
...
More arrays to compare against
Returns an array containing all the values from array1
that are not present in any of the other arrays.
Example #1 array_diff_assoc() 例子
上面的例子中可以看到键值对 "a" => "green" 在两个数组中都有,因此不在本函数的输出中。与此不同,键值对 0 => "red" 出现在输出中是因为第二个参数中的 "red" 的键名是 1。
<?php$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");$array2 = array("a" => "green", "yellow", "red");$result = array_diff_assoc($array1, $array2);print_r($result);?>
以上例程会输出:
Array ( [b] => brown [c] => blue [0] => red )
Example #2 array_diff_assoc() example
键值对 key => value 中的两个值仅在 (string) $elem1 === (string) $elem2 时被认为相等。也就是说使用了严格检查,字符串的表达必须相同。
<?php $array1 = array(0, 1, 2); $array2 = array("00", "01", "2"); $result = array_diff_assoc($array1, $array2); print_r($result); ?>
以上例程会输出:
Array ( [0] => 0 [1] => 1 )
Note: 注意本函数只检查了多维数组中的一维。当然可以用 array_diff_assoc($array1[0], $array2[0]); 检查更深的维度。
array_diff() - 计算数组的差集 array_intersect() - 计算数组的交集 array_intersect_assoc() - 带索引检查计算数组的交集
PHP数组函数array_diff_ukey()的用法 对键名比较计算数组的差集
用回调函数对键名比较计算数组的差集array_diff_ukey() 返回一个数组,该数组包括了所有出现在 array1 中但是未出现在任何其它参数数组中的键名的值。注意关联关系保留不变。本函数和 array_diff() 相同只除了比较是根据键名而不是值来进行的
PHP数组函数array_diff_uassoc()用法 计算数组的差集
用用户提供的回调函数做索引检查来计算数组的差集,对比了 array1 和 array2 并返回不同之处。 注意和 array_diff() 不同的是键名也用于比较。和 array_diff_assoc() 不同的是使用了用户自定义的回调函数,而不是内置的函数。
PHP数组函数array_diff_key()用法 用键名计算数组差集
使用键名比较计算数组的差集根据 array1 中的键名和 array2 进行比较,返回不同键名的项。 本函数和 array_diff() 相同只除了比较是根据键名而不是值来进行的。