array_udiff()
函数用于比较两个或多个数组的差集,根据用户自定义的回调函数进行比较,并返回差集部分。
以下是array_udiff()
函数的用法及示例:
array_udiff(array1, array2, callback)
参数说明:
array1
: 必需,第一个数组。array2
: 必需,第二个数组。callback
: 必需,用于比较数组元素的用户自定义回调函数。
回调函数说明:
int callback ( $a, $b )
回调函数用于比较两个值 $a
和 $b
的大小,返回值为:
- 若
$a
小于$b
,则返回一个负数。 - 若
$a
大于$b
,则返回一个正数。 - 若
$a
等于$b
,则返回 0。
示例:
// 自定义回调函数
function compare($a, $b) {
if ($a == $b) {
return 0;
} elseif ($a > $b) {
return 1;
} else {
return -1;
}
}
// 定义两个数组
$array1 = [1, 2, 3, 4, 5];
$array2 = [2, 4, 6];
// 使用 array_udiff() 函数比较两个数组的差集
$result = array_udiff($array1, $array2, 'compare');
// 输出差集部分
echo "<pre>";
print_r($result);
echo "</pre>";
输出结果:
Array
(
[0] => 1
[2] => 3
[4] => 5
)
在上面的例子中,我们定义了一个自定义的回调函数 compare()
,用于比较两个值的大小。然后使用 array_udiff()
函数比较数组 $array1
和 $array2
的差集,其中差集部分被保存到 $result
变量中。最后,使用 print_r()
函数打印出差集结果。