定义和用法
array_diff_ukey() 函数使用用户定义的函数仅比较两个(或多个)数组的键,并返回一个数组,其中包含 array1 不存在的 array2 或 array3 不存在的条目,等等。
array_diff_ukey() 函数与 array_diff() 函数不同,因为 array_diff() 比较值,而此函数比较键。
array_diff_ukey() 与 array_diff_assoc() 函数不同,因为 array_diff_assoc() 使用内部算法来比较索引,而此函数使用用户定义的函数。
语法
array_diff_ukey ( $array1, $array2 [, $array3...,callback $key_compare_func] );
参数
| 参数 | 描述 |
|---|---|
| array1(Required) |
与其他数组进行比较的数组。 |
| array2(Required) |
与第一个数组进行比较的数组 |
| array3(Optional) |
与第一个数组进行比较的数组 |
| key_compare_func(Required) |
用于比较键的回调函数。如果第一个参数被认为分别是第二个参数的 <、=,>则此回调函数必须返回一个整数 < =,>大于 0。 |
返回值
此函数返回一个数组,其中包含 array1 不存在于任何其他数组中的所有条目。
PHP 版本
此函数首次在 PHP 版本 5.1.0 中引入。
例子
试试下面的例子 -
<?php
function key_compare_func($a, $b) {
if ($a === $b) {
return 0;
}
return ($a > $b)? 1: -1;
}
$input1 = array(0=>"banana", 1=>"orange", 2=>"grapes");
$input2 = array(3=>"apple",1=>"apricot", 5=>"mango");
print_r(array_diff_ukey($input1,$input2,"key_compare_func"));
?>
产生结果 -
Array
(
[0] => banana
[2] => grapes
)
(
[0] => banana
[2] => grapes
)
例子
试试下面的例子 -
<?php
function key_compare_func($a, $b) {
if ($a === $b) {
return 0;
}
return ($a > $b)? 1: -1;
}
$input1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
$input2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);
print_r(array_diff_ukey($input1,$input2,"key_compare_func"));
?>
产生结果 -
Array
(
[red] => 2
[purple] => 4
)
(
[red] => 2
[purple] => 4
)

