合并具有重叠数字键的数组

时间:2015-01-29 12:45:06

标签: php arrays multidimensional-array

我试图弄清楚如何合并使用数字键的两个数组。我有两个数组,例如:

$array1[1] = array('service'=>array(1=>array('name'=>'Emergency','Price'=>10,'start_date'=>'2015-01-01')));
$array2[1] = array('calls'=>array('123456789'=>array('total'=>'150','Price'=>10,'cdrs'=>array(1=>array('src'=>123456789,'dist'=>987654321)))));

它们都有一个密钥,因为它们都属于客户编号1.我需要得到一个如此产生的结果数组:

Array
    (
        [1] => Array
            (
            [service] => Array
            (
                [1] => Array
                    (
                        [name] => Emergency
                        [Price] => 10
                        [start_date] => 2015-01-01
                    )

            )

            [calls] => Array
            (
                [123456789] => Array
                    (
                        [total] => 150
                        [Price] => 10
                        [cdrs] => Array
                            (
                                [1] => Array
                                    (
                                        [src] => 123456789
                                        [dist] => 987654321
                                    )

                            )

                    )

            )

        )

)

这样我可以使用两种方法返回两个大型数组,然后简单地合并它们并循环遍历。

我已尝试过两个array_merge以及我不了解的以下内容:

$merged = $array1 + $array2;

然而,这两种方法似乎都没有实现目标,只是简单地返回一个或另一个。有没有人对如何实现这一点有任何建议?

2 个答案:

答案 0 :(得分:0)

我现在无法测试,但我认为这应该有效。

$newArray = [];
for($i = 0; $i < sizeof($array1);$i++){
    $newArray[] = array_merge($array1[$i],$array2[$i]);
}
return $newArray;

答案 1 :(得分:0)

使用函数array_merge_recursive将两个数组合并为:

  $result[1] = array_merge_recursive($array1[1],$array2[1]);
   //You can change key as per your need may be dynamic
    print_r($result);
相关问题