Как добавить еще один многомерный массив в уже существующий массив.
$args = array('a'=>1,'b'=>2,'c'=>3);
Затем я хочу добавить 'd' => 4 в уже заданный массив. Я пытался:
$args[] = array('d'=>4);
Но я в конечном итоге получаю
Array ( [a] => 1 [b] => 2 [c] => 3 [0] => Array ( [d] => 4 ) )
Вместо
Array ( [a] => 1 [b] => 2 [c] => 3 [0] => [d] => 4 )
Каков правильный способ достижения этого результата?
Это простой пример, который работает только в том случае, если вы хотите явно установить ключ d
на 4
. Если вы хотите получить более общее решение, см. Другие ответы. Поскольку в других ответах не упоминалось явное решение, я думал, что хочу.
Вы пробовали это:
$args[] = array('d'=>4);
Это сделало добавление массива ['d'=>4]
в качестве новой записи в существующий массив $args
. Если вы действительно хотели установить значение $args['d']
равным 4
вы можете сделать это напрямую:
$args['d'] = 4;
ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ:
Это явный ответ. Он будет перезаписывать ключ d
если он уже существует. Это не полезно для добавления новых записей в массив, так как вам придется вручную это делать. Это нужно использовать только в том случае, если вы просто хотите установить один элемент независимо от того, что и что делать. Не используйте это, если вам требуется более общее решение.
Используйте array_merge($myArray, array('d' => 1234))
http://php.net/manual/en/function.array-merge.php
$args = array('foo' => 1);
$args = array_merge($args, array('bar'=>2));
Это заставит $args
array => [
'foo' => 1,
'bar' => 2
]
$args = array_merge($args, array('d' => 4))
вам нужно сделать $args = array_merge($args, array('d' => 4))