Php 用一个公共密钥合并/组合2个数组
我有两个数组Php 用一个公共密钥合并/组合2个数组,php,arrays,laravel,Php,Arrays,Laravel,我有两个数组 $firstarray = [ ['name'='a', 'price'=1],['name'='b', 'price'=2],... ] $secondarray = [ ['name'='b', 'year'=1999],['name'='a', 'year'=2000],... ] how do I combine the together based on the name to result $resultingarry = [ ['name'='a', 'year'
$firstarray = [ ['name'='a', 'price'=1],['name'='b', 'price'=2],... ]
$secondarray = [ ['name'='b', 'year'=1999],['name'='a', 'year'=2000],... ]
how do I combine the together based on the name to result
$resultingarry = [ ['name'='a', 'year'=2000, price'=1],....]
我尝试了array\u merge\u recursive和array\u merge\u recursive\u distinct,但是它们都依赖于键,因此顺序总是关闭的
提前感谢我不知道有哪种PHP函数(或laravel函数)可以做到这一点。不过,有些循环非常简单:
$firstarray=[['name'=>a','price'=>1],'name'=>b','price'=>2],];
$secondarray=[['name'=>b','year'=>1999],'name'=>a','year'=>2000],];
$resultingarray=[];
foreach($firstarray作为$entry){
//在第二个数组中查找具有相同“名称”的项
foreach($secondarray作为$secondentry){
如果($secondentry['name']==$entry['name']){
$resultingarray[]=array\u merge($entry,$secondentry);
继续2;
}
}
}
变量转储($resultingarray);
结果:
array(2) {
[0]=>
array(3) {
["name"]=>
string(1) "a"
["price"]=>
int(1)
["year"]=>
int(2000)
}
[1]=>
array(3) {
["name"]=>
string(1) "b"
["price"]=>
int(2)
["year"]=>
int(1999)
}
}
请注意,这仅合并第一个“匹配”(第二个数组中的条目在第一个数组中具有相同的名称
值)