定义和用法
array_diff_uassoc() 函数比较两个(或多个)数组的键和值,并返回一个数组,该数组包含 array1 不存在的条目,这些条目不存在于具有相同值的任何其他数组中。
此函数与 array_diff() 不同,因为 array_diff() 比较值,而此函数比较其他数组中的键及其值。
array_diff_uassoc() 与 array_diff_assoc() 函数不同,因为 array_diff_assoc() 使用内部算法来比较键及其值,而此函数使用用户定义的函数来比较键及其值。
语法
参数
参数 | 描述 |
---|---|
array1(Required) |
要比较的数组 |
array2(Required) |
与第一个数组进行比较的数组 |
array3(Optional) |
与第一个数组进行比较的数组 |
key_compare_func(Required) |
用于比较键的回调函数。如果第一个参数被认为分别是第二个参数的 <、=,>则此回调函数必须返回一个整数 < =,>大于 0。 |
返回值
此函数返回一个数组,其中包含 array1 所有条目,但这些条目不存在于任何其他数组中。
PHP 版本
此函数最初是在 PHP 版本 5.0.0 中引入的。
例子
请尝试以下示例。这里,如果 $input 1 个键等于任何其他输入数组,则键比较函数返回 0,如果大于 1,则返回 1,如果小于 -1,则返回 -1。
当使用定义的函数比较键时,我们在两个数组中都有键 “a”,因此它不会出现在输出中。接下来的键 “b” 和 “c” 不在第二个数组中,因此它将进入 output。进一步对 0 => “red” 在输出中,因为在第二个参数 “red” 中具有 key ,即 1 −
这将产生以下结果 -
Array
(
[b] => brown
[c] => blue
[0] => red
)
(
[b] => brown
[c] => blue
[0] => red
)
例子
请尝试以下示例。这次 “red” 不会出现在输出中,因为现在两个键都相等,即 0。
这将产生以下结果 -
Array
(
[b] => brown
[c] => blue
)
(
[b] => brown
[c] => blue
)