PHP array_diff_uassoc()函数
定义和用法
array_diff_uassoc()函数比较两个(或多个)数组的键和值,并返回一个数组,其中包含array1中在任何其他具有相同值的数组中不存在的条目。
此函数与array_diff()不同之处在于,array_diff()比较值,而该函数比较其他数组中的键和它们的值。
此函数与array_diff_assoc()不同之处在于,array_diff_assoc()使用内部算法来比较键和它们的值,而该函数使用用户定义的函数来比较键和它们的值。
语法
array_diff_uassoc ( array1,array2 [, array3..., callbackkey_compare_func] );
参数
Sr.No | 参数&描述 |
---|---|
1 | array1(必需) 要比较的数组 |
2 | array2(必需) 要与第一个数组进行比较的数组 |
3 | array3(可选) 要与第一个数组进行比较的数组 |
4 | key_compare_func(必需) 用于比较键的回调函数。这个回调函数必须返回一个整数,如果第一个参数被认为是分别<,=,>第二个参数,则返回<,=,> 0。 |
返回值
此函数返回一个数组,其中包含所有在array1中但不在任何其他数组中存在的条目。
PHP版本
此函数首次引入于PHP版本5.0.0。
示例
尝试下面的示例。在键比较函数中,如果$input1的键与任何其他输入数组相等,则返回0;如果大于,则返回1;如果小于,则返回-1。
在使用定义的函数比较键时,我们在两个数组中都有键”a”,所以它不会出现在输出中。接下来,键”b”和”c”不在第二个数组中,因此它们将出现在输出中。进一步,键值对0 => “red”出现在输出中,是因为在第二个参数中”red”具有键1 −
<?php
function key_compare_func(a,b) {
if (a ===b) {
return 0;
}
return (a>b)? 1: -1;
}
input1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");input2 = array("a" => "green", "yellow", "red");
result = array_diff_uassoc(input1, input2, "key_compare_func");
print_r(result);
?>
这将产生以下结果−
Array
(
[b] => brown
[c] => blue
[0] => red
)
示例
尝试下面的示例。这次输出中将不会包含“red”,因为现在两个键相等,都是0。
<?php
function key_compare_func(a,b) {
if (a ===b) {
return 0;
}
return (a>b)? 1: -1;
}
input1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");input2 = array("a" => "green", "c" => "yellow", "red");
result = array_diff_uassoc(input1, input2, "key_compare_func");
print_r(result);
?>
这 将 产 生 如 下 结 果 −
Array
(
[b] => brown
[c] => blue
)