【问题标题】:Merge Arrays with Overlapping Numerical Keys合并具有重叠数字键的数组
【发布时间】:2015-01-29 12:45:06
【问题描述】:

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

$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;

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

【问题讨论】:

  • 我或许可以回答你,但我对 PHP 不是很熟悉 - 你想如何再次合并它们?它是一个简单的升序/降序,还是别的什么?一般来说,我会自己实现合并功能。它不应该非常复杂。

标签: php arrays multidimensional-array


【解决方案1】:

我现在无法对其进行测试,但我认为这应该可以。

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

【讨论】:

    【解决方案2】:

    使用函数 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);
    

    【讨论】:

      猜你喜欢
      • 2014-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多