请注意,正确的函数概要是
array array_uintersect_uassoc ( array array1, array array2 [, array ...], callback data_compare_func, callback key_compare_func)
您可以指定任意数量的数组,但最后两个参数必须是有效的回调函数。
(PHP 5, PHP 7, PHP 8)
array_uintersect_uassoc — 计算数组的交集,并进行附加索引检查,使用单独的回调函数比较数据和索引
$array1
,...$arrays
,$value_compare_func
,$key_compare_func
计算数组的交集,并进行附加索引检查,使用单独的回调函数比较数据和索引。
array1
第一个数组。
arrays
其他数组。
value_compare_func
比较函数必须返回一个整数,如果第一个参数分别小于、等于或大于第二个参数,则返回值小于、等于或大于零。
排序回调必须处理任何数组中任何值的顺序,无论它们最初提供的顺序如何。这是因为每个单独的数组在与其他数组进行比较之前先进行排序。例如
<?php
$arrayA = ["string", 1];
$arrayB = [["value" => 1]];
// $item1 和 $item2 可以是 "string"、1 或 ["value" => 1] 中的任何一个
$compareFunc = static function ($item1, $item2) {
$value1 = is_string($item1) ? strlen($item1) : (is_array($item1) ? $item1["value"] : $item1);
$value2 = is_string($item2) ? strlen($item2) : (is_array($item2) ? $item2["value"] : $item2);
return $value1 <=> $value2;
};
?>
key_compare_func
键比较回调函数。
返回一个数组,其中包含所有存在于所有参数中的 array1
的值。
示例 #1 array_uintersect_uassoc() 示例
<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");
print_r(array_uintersect_uassoc($array1, $array2, "strcasecmp", "strcasecmp"));
?>
上面的示例将输出
Array ( [a] => green [b] => brown )
请注意,正确的函数概要是
array array_uintersect_uassoc ( array array1, array array2 [, array ...], callback data_compare_func, callback key_compare_func)
您可以指定任意数量的数组,但最后两个参数必须是有效的回调函数。