查询

array_udiff_uassoc()函数—用法及示例

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


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() 函数进行键的比较。最后,输出结果为包含差集的新数组。

补充纠错
上一个函数: array_udiff_assoc()函数
下一个函数: array_uintersect()函数
热门PHP函数
分享链接