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)

