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() — 按键名计算交集
比较的是数组的键名,而不是值。返回第一个数组中键名存在于其他数组中的元素。
示例:
$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():值用回调比较,键用内部方法比较提示: 如果需要更复杂的比较逻辑(比如忽略大小写、自定义规则),可以配合 array_filter() 和 in_array() 实现。基本上就这些,按需选择函数即可。
以上就是php数组交集函数的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1341099.html
微信扫一扫
支付宝扫一扫