array_udiff_uassoc()

返回两个或多个数组的差集,这个差集通过回调函数进行比较

首字母:A

array_udiff_uassoc() 函数用于返回两个或多个数组的差集,这个差集通过回调函数进行比较。

用法:

array_udiff_uassoc ( array $array1 , array $array2 [, array $... ], callable $value_compare_func , callable $key_compare_func ) : array

参数:

  • $array1:必需,第一个数组。
  • $array2:必需,要比较的第二个数组。
  • $...:可选,从第三个数组开始,要比较的其他数组。
  • $value_compare_func:必需,一个自定义的比较函数用于比较数组的值。
    • 函数原型:int function_name ( mixed $a, mixed $b )
    • 如果返回值小于 0,则 $a 小于 $b;
    • 如果返回值等于 0,则 $a 等于 $b;
    • 如果返回值大于 0,则 $a 大于 $b。
  • $key_compare_func:必需,一个自定义的比较函数用于比较数组的键。
    • 函数原型:int function_name ( mixed $a, mixed $b )
    • 如果返回值小于 0,则 $a 小于 $b;
    • 如果返回值等于 0,则 $a 等于 $b;
    • 如果返回值大于 0,则 $a 大于 $b。

返回值: 一个数组,包含了 $array1 中存在但是其他数组中不存在的值,基于键名和键值的比较。

示例:

function cmp($a, $b) {
 if ($a === $b) {
 return 0;
 }
 return ($a > $b) ? 1 : -1;
}
$array1 = [
 "a" => "red",
 "b" => "green",
 "c" => "blue"
];
$array2 = [
 "a" => "red",
 "b" => "blue",
 "c" => "green"
];
$result = array_udiff_uassoc($array1, $array2, "cmp", "cmp");
print_r($result);

输出:

Array
(
 [b] => green
 [c] => blue
)

在示例中,通过 array_udiff_uassoc() 函数计算了 $array1 和 $array2 的差集,并使用 cmp() 函数进行值的比较,同时使用 cmp() 函数进行键的比较。最后,输出结果为包含差集的新数组。

同首字母函数