PHP中获取数组交集可通过array_intersect()比较值并保留键名,array_intersect_key()按键名取交集,array_intersect_assoc()同时匹配键和值,还可使用带回调的变体函数自定义比较逻辑。

PHP中获取数组交集主要使用几个内置函数,根据不同的需求选择合适的函数即可。
1. array_intersect() — 计算数组的值的交集
该函数比较多个数组的值,返回包含所有在第一个数组中出现且也在其他数组中存在的值的数组。
- 只比较值,不比较键
- 保留第一个数组中元素的键名
- 值通过严格比较(字符串类型匹配)判断是否相等
$arr1 = ['a' => 'apple', 'b' => 'banana', 'c' => 'cherry']; $arr2 = ['d' => 'apple', 'e' => 'date']; $result = array_intersect($arr1, $arr2); // 结果: ['a' => 'apple']
2. array_intersect_key() — 按键名计算交集
比较的是数组的键名,而不是值。返回第一个数组中键名存在于其他数组中的元素。
如意雅阁o2oMall集市基于PHP+Mysql开发的电脑访问、手机访问方式数据互融互通,后台涵盖了订单管理、会员管理、推广员、CRM客户管理、营销推广管理、财务管理、统计报表。全面适应020 o2o模式的商城集市整站程序。
$arr1 = ['name' => 'Tom', 'age' => 25, 'city' => 'Beijing']; $arr2 = ['name' => 'Jerry', 'city' => 'Shanghai', 'job' => 'Dev']; $result = array_intersect_key($arr1, $arr2); // 结果: ['name' => 'Tom', 'city' => 'Beijing']
3. array_intersect_assoc() — 同时比较值和键
只有当键名和值都相同时才被认为是相同的元素。
立即学习“PHP免费学习笔记(深入)”;
示例:$arr1 = ['color' => 'red', 'size' => 'M']; $arr2 = ['color' => 'red', 'size' => 'L']; $result = array_intersect_assoc($arr1, $arr2); // 结果: ['color' => 'red']
4. 其他变体函数
- array_intersect_uassoc():使用用户自定义函数比较键名
- array_intersect_ukey():使用回调函数比较键名
- array_uintersect():使用回调函数比较值
- array_uintersect_assoc():值用回调比较,键用内部方法比较










