php二维数组中将有交集的并在一起
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php二维数组中将有交集的并在一起相关的知识,希望对你有一定的参考价值。
1、需求
- 将下方数组
$arr
格式化为[[A,B,C,D,E,F], [X,Y,Z]]
2、编码
$arr = [
[\'A\', \'B\'],
[\'A\', \'C\'],
[\'A\', \'D\'],
[\'C\', \'E\'],
[\'D\', \'F\'],
[\'X\', \'Y\'],
[\'X\', \'Z\']
];
$result = array();
foreach ($arr as $subArr)
$merged = false;
foreach ($result as &$r)
if (array_intersect($r, $subArr))
$r = array_unique(array_merge($r, $subArr));
$merged = true;
break;
if (!$merged)
$result[] = $subArr;
print_r($result);
3、输出结果
[
0 => [
0 => "A"
1 => "B"
2 => "C"
3 => "D"
4 => "E"
6 => "F"
]
1 => [
0 => "X"
1 => "Y"
3 => "Z"
]
]
PHP 两个二维数组求交集
思路,循环其中一个数组,然后使用in_array() 函数,判断被循环数组的每个元素是否在另外一个数组中即可
代码如下:
$out_arr = array(); //交集或者是不重复的数组 if(!empty($res_repeat)){ //Wipe off the mac that in the mac_array foreach($mac_array as $key=>$item){ if(!in_array(array("mac_addr"=>$item),$res_repeat)){ $out_arr[]=$item; } } }else{ $out_arr = $mac_array; }
只需要输出$out_arr即可
以上是关于php二维数组中将有交集的并在一起的主要内容,如果未能解决你的问题,请参考以下文章