PHP中获取数组交集可通过array_intersect()比较值并保留键名,array_intersect_key()按键名取交集,array_intersect_assoc()同时匹配键和值,还可使用带回调的变体函数自定义比较逻辑。
PHP中获取数组交集主要使用几个内置函数,根据不同的需求选择合适的函数即可。
该函数比较多个数组的值,返回包含所有在第一个数组中出现且也在其他数组中存在的值的数组。
$arr1 = ['a' => 'apple', 'b' => 'banana', 'c' => 'cherry']; $arr2 = ['d' => 'apple', 'e' => 'date']; $result = array_intersect($arr1, $arr2); // 结果: ['a' => 'apple']
比较的是数组的键名,而不是值。返回第一个数组中键名存在于其他数组中的元素。
示例:$arr1 = ['name' => 'Tom', 'age' => 25, 'city' => 'Beijing']; $arr2 = ['name' => 'Jerry', 'city' => 'Shanghai', 'job' => 'Dev']; $result = array_intersect_key($arr1, $arr2); // 结果: ['name' => 'Tom', 'city' => 'Beijing']
只有当键名和值都相同时才被认为是相同的元素。
示例:$arr1 = ['color' => 'red', 'size' => 'M']; $arr2 = ['color' => 'red', 'size' => 'L']; $result = array_intersect_assoc($arr1, $arr2); // 结果: ['color' => 'red']
_intersect_uassoc():使用用户自定义函数比较键名