PHP Conference Japan 2024

array_uintersect_assoc

(PHP 5, PHP 7, PHP 8)

array_uintersect_assoc计算数组的交集,并进行额外的索引检查,通过回调函数比较数据

描述

array_uintersect_assoc(数组 $array, 数组 ...$arrays, 可调用 $value_compare_func): 数组

计算数组的交集,并进行额外的索引检查,通过回调函数比较数据。

请注意,与 array_uintersect() 不同,此处使用键进行比较。数据通过使用回调函数进行比较。

参数

数组

第一个数组。

数组

要比较的数组。

value_compare_func

比较函数必须返回一个小于、等于或大于零的整数,如果第一个参数分别被认为小于、等于或大于第二个参数。

回调(混合 $a, 混合 $b): 整数
注意

从比较函数返回的 *非整数* 值,例如 浮点数,将导致回调返回值内部转换为 整数。因此,诸如 0.990.1 之类的值都将被强制转换为整数 0,这将使这些值被视为相等。

注意

排序回调必须处理来自任何数组的任何值,无论它们最初提供的顺序如何。这是因为每个单独的数组在与其他数组进行比较之前都会先进行排序。例如

<?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;
};
?>

返回值

返回一个数组,包含 array 中所有存在于所有参数中的值。

示例

示例 #1 array_uintersect_assoc() 示例

<?php
$array1
= array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");

print_r(array_uintersect_assoc($array1, $array2, "strcasecmp"));
?>

以上示例将输出

Array
(
    [a] => green
)

参见

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top