array_udiff()
是 PHP 中的一个内置函数,用于计算两个或多个数组之间的差集。这意味着,它将返回一个新数组,其中包含了在第一个数组中存在但在其他数组中不存在的元素。与 array_diff()
函数相比,array_udiff()
允许你使用自定义的比较函数来确定元素之间的差异。
函数原型:
array array_udiff(array $array1, array $array2, array $_ = null, callable $data_compare_func);
参数说明:
$array1
, $array2
, $_
:需要比较的数组。$data_compare_func
:用于比较数组元素的自定义函数。该函数应接受两个参数,并返回一个整数值,表示它们之间的差异。如果返回值为正数,则表示第一个参数大于第二个参数;如果返回值为负数,则表示第一个参数小于第二个参数;如果返回值为零,则表示两个参数相等。下面是一个使用 array_udiff()
函数的示例:
<?php
function compare_values($a, $b) {
if ($a < $b) {
return -1;
} elseif ($a > $b) {
return 1;
} else {
return 0;
}
}
$array1 = array(1, 2, 3, 4, 5);
$array2 = array(3, 4, 5, 6, 7);
$result = array_udiff($array1, $array2, 'compare_values');
print_r($result);
?>
输出结果:
Array
(
[0] => 1
[1] => 2
)
在这个示例中,我们定义了一个名为 compare_values()
的自定义比较函数,用于比较两个数字。然后,我们使用 array_udiff()
函数计算 $array1
和 $array2
之间的差集。最后,我们打印出结果数组,可以看到它包含了在 $array1
中存在但在 $array2
中不存在的元素(1 和 2)。