📜  PHP | array_udiff()函数(1)

📅  最后修改于: 2023-12-03 15:18:21.517000             🧑  作者: Mango

PHP | array_udiff()函数

简介

array_udiff() 函数用于比较两个或多个数组的值,并返回差集。与 array_diff() 函数不同的是,array_udiff() 允许使用回调函数比较数组中的值。

语法
array_udiff ( array $array1 , array $array2 [, array $... ], callable $data_compare_func ) : array

参数说明:

  • array1:必需,与其他数组进行比较的第一个数组。
  • array2:必需,与 array1 进行比较的第二个数组。
  • ...:可选,与 array1 进行比较的其它数组。
  • data_compare_func:必需,用于比较数组值的回调函数。回调函数的参数是被比较的两个值,该函数必须返回一个整数:如果返回小于 0 的值,则表示第一个值小于第二个值;如果返回等于 0 的值,则表示两个值相等;如果返回大于 0 的值,则表示第一个值大于第二个值。
返回值

该函数返回一个数组,该数组包含所有在 array1 中出现但不在其他数组中出现的值。

示例
<?php
function compare($a, $b){
    $a = strtolower($a);
    $b = strtolower($b);
    if($a == $b){
        return 0;
    }
    return $a > $b ? 1 : -1;
}

$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("A" => "green", "B" => "yellow", "c" => "red");
$result = array_udiff($array1, $array2, "compare");

print_r($result);
?>

输出结果:

Array
(
    [b] => brown
    [c] => blue
    [0] => red
)
小结

array_udiff() 函数是一个非常实用的函数,可以用于比较数组中的值并返回差集。需要注意的是,回调函数用于比较数组中的值,因此需要自己编写合适的回调函数来实现比较。