Как добавить многомерный массив к элементу многомерного массива - PullRequest
0 голосов
/ 13 февраля 2020

Я пытаюсь добавить многомерный массив где-то внутри другого многомерного массива. У меня есть этот пример кода, чтобы объяснить, что я пытаюсь сделать и что идет не так:

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

1 голос
/ 13 февраля 2020

Объединение массивов будет отлично работать в качестве бездействующего метода слияния массивов на ваших ассоциативных массивах.

Код: ( Демо )

$a_base['wop'] += $a_addon;
0 голосов
/ 13 февраля 2020

Использование array_merge()

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