【问题标题】:PHP - Multidimensional array merge to one arrayPHP - 多维数组合并为一个数组
【发布时间】:2019-10-08 19:39:47
【问题描述】:

我有 2 个这样的数组:

数组一:

[
    [
        "id" => 1234
        "name" => "John"
    ],
    [
        "id" => 1235
        "name" => "doe"
    ]
]

数组二:

[
    [
        "age" => 12
    ],
    [
        "age" => 13
    ]
]

我已经尝试使用并结合array_reducearray_maparray_merge_recursive,但它仍然与结果不匹配。

我怎样才能使两个数组如下所示?

[
    [
        "id" => 1234
        "name" => "John"
        "age" => 12
    ],
    [
        "id" => 1235
        "name" => "doe"
        "age" => 13
    ]
]

请帮助我。谢谢

【问题讨论】:

  • 我认为您必须编写自己的函数才能做到这一点。

标签: php arrays multidimensional-array array-merge


【解决方案1】:

array-maparray-merge 的组合应该可以解决问题:

$c = array_map('array_merge', $a, $b);

现场示例:3v4l

【讨论】:

    【解决方案2】:

    Demo link

    您可以迭代第一个数组并与具有尊重索引匹配的第二个数组合并

    $merged =[];
    foreach($a as $k => $val){
        array_push($merged,array_merge($val,$b[$k]));
    }
    print_r($merged);
    

    【讨论】:

      【解决方案3】:

      你可以像这样使用array_merge:

      <?php
      
      $array = array(
                        ["id" => "1",  
                         "name" => "denba"
                       ],
      
                          ["id" => "1",  
                         "name" => "chpa7"
                       ],
      
                    );              
      
      $ages = array(
                        ["age" => "15",  
      
                       ],
      
                          ["age" => "17", 
                       ],
      
                    );
      
      foreach($array as $key => $value){
          $array[$key]=array_merge($array[$key], $ages[$key]);
      }
      
      
      var_dump($array); 
      /*output:
          array(2) {
        [0]=>
        array(3) {
          ["id"]=>
          string(1) "1"
          ["name"]=>
          string(5) "denba"
          ["age"]=>
          string(2) "15"
        }
        [1]=>
        array(3) {
          ["id"]=>
          string(1) "1"
          ["name"]=>
          string(5) "chpa7"
          ["age"]=>
          string(2) "17"
        }
      }
      */
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-08
        • 1970-01-01
        相关资源
        最近更新 更多