在php编程中,二维数组是经常使用的数据结构之一。二维数组中最常用的操作之一就是求交集。那么,如何在php中求二维数组的交集呢?下面我们来看一下具体实现方式。
1.使用 array_intersect 函数
PHP提供了一个内置函数array_intersect(),可以用于求两个数组的交集。该函数可以接受多个数组作为参数,对于二维数组,需要使用array_map函数将关联数组转换为索引数组。
示例代码如下:
$arr1 = array( array('id'=>1,'name'=>'Tom'), array('id'=>2,'name'=>'Jack'), array('id'=>3,'name'=>'Lucy'),);$arr2 = array( array('id'=>2,'name'=>'Jack'), array('id'=>4,'name'=>'Mike'), array('id'=>5,'name'=>'Lily'),);$intersect = call_user_func_array('array_intersect', array_map(function($ar){return array_values($ar);},array($arr1, $arr2)));var_dump($intersect);
登录后复制
输出结果为:
立即学习“PHP免费学习笔记(深入)”;
array(1) { [0]=> array(2) { ["id"]=> int(2) ["name"]=> string(4) "Jack" }}
登录后复制登录后复制
2.使用自定义函数
除了内置函数,我们还可以使用自定义函数来实现二维数组求交集的功能。下面是一个简单的实现方式:
/** * 求二维数组交集 * @param $arr1 * @param $arr2 * @return array */function arr_intersect($arr1, $arr2){ $intersect = array(); foreach($arr1 as $value1){ foreach($arr2 as $value2){ if($value1 == $value2){ $intersect[] = $value1; break; } } } return $intersect;}$arr1 = array( array('id'=>1,'name'=>'Tom'), array('id'=>2,'name'=>'Jack'), array('id'=>3,'name'=>'Lucy'),);$arr2 = array( array('id'=>2,'name'=>'Jack'), array('id'=>4,'name'=>'Mike'), array('id'=>5,'name'=>'Lily'),);$intersect = arr_intersect($arr1, $arr2);var_dump($intersect);
登录后复制
输出结果为:
立即学习“PHP免费学习笔记(深入)”;
array(1) { [0]=> array(2) { ["id"]=> int(2) ["name"]=> string(4) "Jack" }}
登录后复制登录后复制
总结
二维数组的求交集操作在PHP编程中是非常常见的。通过使用PHP内置函数array_intersect()或自定义函数,我们可以轻松地实现二维数组的求交集功能。在实际项目中,我们应该根据具体场景选择最优的方式来实现出一个快速可靠的交集算法。
以上就是php 二维数组求交集的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1997487.html