PHP - array_intersect_assoc() 函数


PHP 的 array_intersect_assoc() 函数用于比较多个数组的键名和键值,返回所有输入数组中键名和键值均匹配的交集。与 array_intersect() 不同,它同时检查键名和键值是否一致,因此适用于需要精确匹配键值对的场景。

定义和用法

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

语法

array array_intersect_assoc ( array $array1, array $array2 [, array $array3 ...] );

参数

参数 描述
array1(Required)

第一个数组是将与其他数组进行比较的数组。

array2(Required)

与第一个数组进行比较的数组

array3(Optional)

与第一个数组进行比较的数组

返回值

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

示例 1:基本用法

试试下面的例子 -

$array1 = ["a" => "apple", "b" => "banana", "c" => "cherry"];
$array2 = ["a" => "apple", "c" => "cherry", "d" => "date"];
$result = array_intersect_assoc($array1, $array2);

产生结果 -

["a" => "apple", "c" => "cherry"]

示例 2:键名严格匹配,(键名类型不同,严格不匹配)

$array1 = [0 => "zero", 1 => "one"];
$array2 = ["0" => "zero", "1" => "one"]; // 键名为字符串类型
$result = array_intersect_assoc($array1, $array2);

结果:
[]

示例 3:松散值比较

$array1 = ["a" => 1, "b" => 2];
$array2 = ["a" => "1", "b" => 2];
$result = array_intersect_assoc($array1, $array2);

结果:

["a" => 1, "b" => 2](1 == "1" 松散比较为true)