比较两个多维数组 &得到差异 &两个不同数组中的唯一值 PHP [英] Compare two multidimensional arrays & Get difference & unique values in two different arrays PHP
本文介绍了比较两个多维数组 &得到差异 &两个不同数组中的唯一值 PHP的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有两个多维数组..
$a1= Array
(
[0] => Array
(
[sight_id] => 13
[location] => Jodhpur, Rajasthan, India
)
[1] => Array
(
[sight_id] => 14
[location] => Jodhpur Jn, Jodhpur, Rajasthan, India
)
[2] => Array
(
[sight_id] => 15
[location] => D-Kirtinagar, Jodhpur, Rajasthan, India
)
);
$a1= Array
(
[0] => Array
(
[sight_id] => 13
[location] => Jodhpur, Rajasthan, India
)
[1] => Array
(
[sight_id] => 14
[location] => Jodhpur Jn, Jodhpur, Rajasthan, India
)
[2] => Array
(
[sight_id] => 16
[location] => Jaisalmer, Rajasthan, India
)
[3] => Array
(
[sight_id] => 17
[location] => Fort Road, Amar Sagar Pol, Jaisalmer, Rajasthan, India
));
我想将上面给定的数组分成三个不同的数组..
I want to split above given arrays into three different arrays..
$intersect_array=Array
(
[0] => Array
(
[sight_id] => 13
[location] => Jodhpur, Rajasthan, India
)
[1] => Array
(
[sight_id] => 14
[location] => Jodhpur Jn, Jodhpur, Rajasthan, India
));
$only_a1=Array(
[0]=> Array
(
[sight_id] => 15
[location] => D-Kirtinagar, Jodhpur, Rajasthan, India
));
$only_a2=Array(
[1] => Array
(
[sight_id] => 16
[location] => Jaisalmer, Rajasthan, India
)
[2] => Array
(
[sight_id] => 17
[location] => Fort Road, Amar Sagar Pol, Jaisalmer, Rajasthan, India
));
推荐答案
将数组转换为一种格式,其中数组索引是sight_id:
Convert arrays to a format, where array index is the sight_id:
$b1 =array();
foreach($a1 as $x)
$b1[$x['sight_id']] = $x['location'];
$b2 =array();
foreach($a2 as $x)
$b2[$x['sight_id']] = $x['location'];
计算差异和交集:
$c_intersect = array_intersect_key($b1,$b2);
$c_1 = array_diff_key($b1,$b2);
$c_2 = array_diff_key($b2,$b1);
将数组转换回您的格式:
Convert arrays back to your format:
$intersect_array = array();
foreach($c_intersect as $i=>$v)
$intersect_array[] = array('sight_id'=>$i,'location'=>$v);
$only_a1 = array();
foreach($c_1 as $i=>$v)
$only_a1[] = array('sight_id'=>$i,'location'=>$v);
$only_a2 = array();
foreach($c_2 as $i=>$v)
$only_a2[] = array('sight_id'=>$i,'location'=>$v);
这篇关于比较两个多维数组 &得到差异 &两个不同数组中的唯一值 PHP的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文