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

Для преобразования массивов в php есть множество функций и операторов: Сборник функций для работы с массивами

Есть несколько способов, чтобы добавить массив в массив при помощи php и все они могут пригодиться для отдельных случаев.

«Оператор +»

Это простой, но коварный способ:

$c = $a + $b

Так добавляются только те ключи, которых еще нет в массиве $a. При этом элементы дописываются в конец массива.

То есть если ключ из массива $b отсутствует в массиве $a, то в результирующем массиве добавится элемент с этим ключом.
Если в массиве $a уже есть элемент с таким ключом, то его значение останется без изменений.

Иными словами от перемены мест слагаемых сумма меняется: $a + $b != $b + $a — это стоит запомнить.

А теперь более подробный пример, чтобы проиллюстрировать это:

$arr1 = ['a' => 1, 'b' => 2];
$arr2 = ['b' => 3, 'c' => 4];

var_export($arr1 + $arr2);
//array (
//    'a' => 1,
//    'b' => 2,
//    'c' => 4,
//)
var_export($arr2 + $arr1);
//array (
//    'b' => 3,
//    'c' => 4,
//    'a' => 1,
//)

Функция array_merge()

Использовать эту функцию можно следующим образом:

$result = array_merge($arr1, $arr2)

Она сбрасывает числовые индексы и заменяет строковые. Отлично подходит для того, чтобы склеить два или несколько массивов с числовыми индексами:

Если входные массивы имеют одинаковые строковые ключи, тогда каждое последующее значение будет заменять предыдущее. Однако, если массивы имеют одинаковые числовые ключи, значение, упомянутое последним, не заменит исходное значение, а будет добавлено в конец массива.

Подробная справка по array_megre.

Функция array_merge_recursive

Делает то же самое, что и array_merge только еще и рекурсивно проходит по каждой ветке массива и проделывает то же самое с потомками. Подробная справка по array_merge_recursive

Функция array_replace()

Заменяет элементы массива элементами других переданных массивов. Подробная справка по array_replace.

Функция array_replace_recursive()

То же что и array_replace только обрабатывает все ветки массива. Справка по array_replace_recursive.

Другие функции

Для работы с массивами в php есть еще ряд полезных функций, о существовании которых желательно знать. Прочитать о них можно по ссылке: http://php.net/manual/ru/book.array.php

Была ли эта статья полезна?
Да
Нет