Добавление другого многомерного массива

1

Как добавить еще один многомерный массив в уже существующий массив.

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

Каков правильный способ достижения этого результата?

  • 0
    Вы хотите явно установить [d] => 4 или вам нужно более общее решение?
  • 0
    Эти массивы не кажутся многомерными.
Теги:
arrays
multidimensional-array

2 ответа

2
Лучший ответ

Это простой пример, который работает только в том случае, если вы хотите явно установить ключ d на 4. Если вы хотите получить более общее решение, см. Другие ответы. Поскольку в других ответах не упоминалось явное решение, я думал, что хочу.

Вы пробовали это:

$args[] = array('d'=>4);

Это сделало добавление массива ['d'=>4] в качестве новой записи в существующий массив $args. Если вы действительно хотели установить значение $args['d'] равным 4 вы можете сделать это напрямую:

$args['d'] = 4;

ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ:
Это явный ответ. Он будет перезаписывать ключ d если он уже существует. Это не полезно для добавления новых записей в массив, так как вам придется вручную это делать. Это нужно использовать только в том случае, если вы просто хотите установить один элемент независимо от того, что и что делать. Не используйте это, если вам требуется более общее решение.

1

Используйте 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
]
  • 0
    array_merge ($ args, array ('d' => 4)); дал мне массив ([a] => 1 [b] => 2 [c] => 3), так что, похоже, он его не добавил.
  • 0
    Он не изменяет ваш исходный массив. Если вы хотите, чтобы $ args оставался $args = array_merge($args, array('d' => 4)) вам нужно сделать $args = array_merge($args, array('d' => 4))
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню