所以我得到了两个包含键值对的关联数组。它们共享一个键名,如果"name"
值相等,我想向另一个添加一个数组。
所以如果你有这些数组:
$array1 = [name=>"Foo",
date=>array("2016-06-06", "2016-06-05", "2016-06-04"),
(some other key-value pairs)];
$array2 = [name=>"Foo",
date=>array("2016-06-06", "2016-06-05", "2016-06-04"),
download_count=>array(54,23,15),
(some other key-value pairs)];
结果应该是这样的:
$newArray = [name=>"Foo",
date=>array("2016-06-06", "2016-06-05", "2016-06-04"),
(the other key-value pairs from $array1),
app=>array(
name=>"Foo",
date=>array("2016-06-06", "2016-06-05", "2016-06-04"),
download_count=>array(54,23,15),
(the other key-value pairs from $array2))]
现在我尝试遍历两个数组,以查看索引$i,$j
中两个数组的名称是否相同,以及它们是否合并两者。
这是我用于
的代码foreach($array1 as $foo){
foreach($array2 as $bar){
if($foo["name"] == $bar["name"]){
$foo["app"] = $bar;
}
}
}
或者我尝试使用这样的常规for
循环:
for($i = 0; $i < count($array1); $i++){
for($j = 0; $j < count($array2); $i++){
if($array1[$i]["name"] == $array2[$j]["name"]){
$array1[$i]["app"] = $array2[$j];
break;
}
}
}
第一个例子的结果只是$array1
(未改变),而替代例子的结果是一个无限循环。
有人可以帮助弄清楚如何获得理想的结果吗?
修改
让它工作,只是初学者错误在这种情况下,for循环增加了$ i而不是第一个循环将一个添加到$ i而另一个将ine添加到$ j