Как добавить другой массив внутри этого массива в php

54
6

Извините, если это название может показаться вводящим в заблуждение, я действительно не знал, как задать этот вопрос.

Так что у меня есть такой массив

    $array=
[
'Drinks'=>[
'Water'=> [
'ID' => '4',
'Name' => 'Clean-water',
'Value' => '1',
'Made' => 'Acient',
'Stackable' => true
],

'Wine'=> [
'ID' => '5',
'Name' => 'Soff',
'Value' => '5',
'Made' => 'Acient',
'Stackable' => true
],

'Vodka'=> [
'ID' => '6',
'Name' => 'Laudur',
'Value' => '7',
'Made' => 'Acient',
'Stackable' => true
]

]
];

Я хочу добавить еще один массив в "Vodka", например, с такими значениями:

                'Vodka'=> [
'ID' => '6',
'Name' => 'Laudur',
'Value' => '7',
'Made' => 'Acient',
'Stackable' => true
],[
'ID' => '7',
'Name' => 'Test',
'Value' => '9',
'Made' => 'New',
'Stackable' => true
]

Но когда я var_dump, я не получу этот массив в массив "Vodka", он создаст массив [0].

array (size=2)
'Weapons' =>
array (size=3)
'Sword' =>
array (size=5)
'ID' => string '1' (length=1)
'Name' => string 'Lurker' (length=6)
'Value' => string '12' (length=2)
'Made' => string 'Acient' (length=6)
'Stackable' => boolean false
'Shield' =>
array (size=5)
'ID' => string '2' (length=1)
'Name' => string 'Obi' (length=3)
'Value' => string '22' (length=2)
'Made' => string 'Acient' (length=6)
'Stackable' => boolean false
'Warhammer' =>
array (size=5)
'ID' => string '3' (length=1)
'Name' => string 'Clotch' (length=6)
'Value' => string '124' (length=3)
'Made' => string 'Acient' (length=6)
'Stackable' => boolean false
'Drinks' =>
array (size=4)
'Water' =>
array (size=5)
'ID' => string '4' (length=1)
'Name' => string 'Clean-water' (length=11)
'Value' => string '1' (length=1)
'Made' => string 'Acient' (length=6)
'Stackable' => boolean true
'Wine' =>
array (size=5)
'ID' => string '5' (length=1)
'Name' => string 'Soff' (length=4)
'Value' => string '5' (length=1)
'Made' => string 'Acient' (length=6)
'Stackable' => boolean true
'Vodka' =>
array (size=5)
'ID' => string '6' (length=1)
'Name' => string 'Laudur' (length=6)
'Value' => string '7' (length=1)
'Made' => string 'Acient' (length=6)
'Stackable' => boolean true
0 =>
array (size=5)
'ID' => string '7' (length=1)
'Name' => string 'Viru' (length=4)
'Value' => string '8' (length=1)
'Made' => string 'Acient' (length=6)
'Stackable' => boolean true

Как я могу исправить это, потому что я действительно хочу добавить это в массив "Vodka", но я не хочу создавать еще один массив "Drinks"?

спросил(а) 2017-09-06T17:34:00+03:00 2 года, 8 месяцев назад
1
Решение
74

$add = [
'ID' => '7',
'Name' => 'Test',
'Value' => '9',
'Made' => 'New',
'Stackable' => true
];
$array['Drinks']['Vodka'] = array_merge([$array['Drinks']['Vodka']], [$add]);

https://eval.in/856419


array_merge() http://fi2.php.net/manual/en/function.array-merge.php

ответил(а) 2017-09-06T18:13:00+03:00 2 года, 8 месяцев назад
84

Вам нужно сделать следующее: -

$array['Drinks']['Vodka']=[
$array['Drinks']['Vodka'], [
'ID' => '7',
'Name' => 'Test',
'Value' => '9',
'Made' => 'New',
'Stackable' => true
]
];

print_r($array);

Выход: - https://eval.in/856440

ответил(а) 2017-09-06T17:36:00+03:00 2 года, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема