如何将多维数组添加到多维数组的元素

时间:2020-02-13 20:03:47

标签: php arrays multidimensional-array

我正在尝试在另一个多维数组内的某个地方添加多维数组。我有以下代码示例来说明我尝试执行的操作以及出了什么问题:

    $a_base =   [
                'wop' => 
                    [
                        'tik' => 
                            [
                                'a' => 190,
                                'b' => 323,
                                'c' => 342
                            ],
                        'tak' =>
                            [
                                'a' => 142,
                                'b' => 654,
                                'c' => 785
                            ]
                    ],
                'wap' =>
                    [
                        'top' => 
                            [
                                'a' => 564,
                                'b' => 667,
                                'c' => 968
                            ],
                        'top' =>
                            [
                                'a' => 603,
                                'b' => 694,
                                'c' => 102
                            ]
                    ]
            ];

$a_addon =  [
                'tok' =>
                    [
                        'a' => 883,
                        'b' => 993,
                        'c' => 878

                    ]
            ];


array_push($a_base['wop'], $a_addon);
var_dump($a_base);

结果是这样的:

array(2) {
  ["wop"]=>
  array(3) {
    ["tik"]=>
    array(3) {
      ["a"]=>
      int(190)
      ["b"]=>
      int(323)
      ["c"]=>
      int(342)
    }
    ["tak"]=>
    array(3) {
      ["a"]=>
      int(142)
      ["b"]=>
      int(654)
      ["c"]=>
      int(785)
    }
    [0]=>
    array(1) {
      ["tok"]=>
      array(3) {
        ["a"]=>
        int(883)
        ["b"]=>
        int(993)
        ["c"]=>
        int(878)
      }
    }
  }
  ["wap"]=>
  array(1) {
    ["top"]=>
    array(3) {
      ["a"]=>
      int(603)
      ["b"]=>
      int(694)
      ["c"]=>
      int(102)
    }
  }
}

但是我需要的是这个(没有[0] => array(1){...}):

array(2) {
  ["wop"]=>
  array(3) {
    ["tik"]=>
    array(3) {
      ["a"]=>
      int(190)
      ["b"]=>
      int(323)
      ["c"]=>
      int(342)
    }
    ["tak"]=>
    array(3) {
      ["a"]=>
      int(142)
      ["b"]=>
      int(654)
      ["c"]=>
      int(785)
    }
    ["tok"]=>
    array(3) {
      ["a"]=>
      int(883)
      ["b"]=>
      int(993)
      ["c"]=>
      int(878)
    }
  }
  ["wap"]=>
  array(1) {
    ["top"]=>
    array(3) {
      ["a"]=>
      int(603)
      ["b"]=>
      int(694)
      ["c"]=>
      int(102)
    }
  }
}

我尝试了其他功能,例如array_combine等,但没有成功。谁能帮我怎么做?

2 个答案:

答案 0 :(得分:1)

数组联合将完美地用作关联数组上的无功能数组合并技术。

代码:(Demo

$a_base['wop'] += $a_addon;

答案 1 :(得分:0)

使用array_merge()

$a_base['wop'] = array_merge($a_base['wop'], $a_addon);