array_uintersect()
函数用于计算两个或多个数组的交集,使用用户自定义的回调函数来比较数组的值。
用法:
array_uintersect(array $array1, array $array2, callable $callback) : array
参数说明:
$array1
:第一个数组。$array2
:第二个数组。$callback
:用户自定义的回调函数,用于比较数组的值。该函数应接受两个参数,并返回一个整数值:- 如果返回值小于 0,则表示第一个参数小于第二个参数。
- 如果返回值等于 0,则表示第一个参数等于第二个参数。
- 如果返回值大于 0,则表示第一个参数大于第二个参数。
返回值: 返回一个包含交集值的新数组。
示例:
// 定义一个回调函数来比较数组的值
function compareValues($a, $b) {
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
// 两个数组
$array1 = [1, 2, 3, 4, 5];
$array2 = [4, 5, 6, 7, 8];
// 调用 array_uintersect() 函数获取交集
$result = array_uintersect($array1, $array2, 'compareValues');
// 输出结果
echo '<pre>';
print_r($result);
echo '</pre>';
输出结果:
Array
(
[0] => 4
[1] => 5
)
在上面的示例中,我们定义了一个回调函数 compareValues()
,它比较两个值是否相等。然后,调用 array_uintersect()
函数来计算 $array1
和 $array2
的交集,使用 compareValues()
函数进行比较。最后,通过使用 <pre>
标签来格式化输出结果数组。在这个例子中,交集结果是 [4, 5]
。