结合两个assosiative数组的if(id)值是相同的

时间:2016-06-06 12:30:28

标签: php arrays associative-array

所以我得到了两个包含键值对的关联数组。它们共享一个键名,如果"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

0 个答案:

没有答案