Как объединить два массива в один на PHP (слить элементы массивов)
1. Пользоваться PHP-функцией array_merge
array array_merge ( array array1, array array2 [, array ...] )
Функция array_merge() сливает элементы двух или большего количества массивов таким образом, что значения одного массива присоединяются к значениям предыдущего. Результатом работы функции является новый массив.
Если входные массивы имеют одинаковые строковые ключи, тогда значения, соответствующие этим ключам, рекурсивно сливаются в один массив, таким образом, если одно из значений является массивом, функция сливает его с соответствующим значением в другом массиве. Однако, если массивы имеют одинаковые числовые ключи, значение, упомянутое последним, не заменит исходное значение, а будет слито с ним.
Пример 1. Пример использования array_merge()
$array1 = array ("color" => "red", 2, 4); $array2 =array ("a", "b", "color" => "green", "shape" => "trapezoid", 4); $result = array_merge ($array1, $array2); print_r($result);
Результат выполнения данного примера:
Array ( [color] => green [0] => 2 [1] => 4 [2] => a [3] => b [shape] => trapezoid [4] => 4 )
2. Просто сложить два массива
Если вы хотите полностью сохранить массивы и просто слить их вместе, используйте оператор +:
$array1 = array(); $array2 = array(1 => "data"); $result = $array1 + $array2;
Числовой ключ будет сохранен, поэтому ассоциация также сохраняется.
Array ( [1] => data )
Следует помнить, что в PHP 5 функция array_merge принимает параметры только типа array.
almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.
Вы можете почитать все статьи от almix'а.
- 0 Composer – пакетный менеджер PHP. Что и как? (22.07.2014)
- 0 MySQL и PHP: Вычисление возраста (количество лет) по дате рождения (20.06.2017)
- 0 Как изменить часовой пояс на сервере (16.11.2013)
- 0 PHP: Как удалить файлы по маске? (07.11.2013)
- 0 Регулярные выражения в PHP (12.04.2014)
- 0 Защита от спама в phpBB3 без капчи (09.10.2013)
- 0 Php функция implode внутри запроса SELECT к MySQL. (02.09.2013)
- 0 Как убрать папку www из денвера? (22.03.2013)
- 0 Устанавливаем и настраиваем WampServer (аналог MAMP в Mac и возможная замена Denwer'у) на Windows (22.03.2013)
- 0 Полезные возможности PhpStorm и настройка горячих клавиш (14.03.2013)
- Артефакты при ресайзе библиотекой GD изображений с однородным (белым) фоном (07.12.2017)
- Задаем область печати документа для PHPExcel (05.12.2017)
- Как включить SSL и сделать редирект на HTTPS. На примере Opencart 2 (03.12.2017)
- Смена кодировки Битрикса с windows-1251 в UTF-8 (utf8) (01.12.2017)
- Свой дизайн кнопок социальных сетей для сайта. Кнопки "Поделиться" (19.06.2017)
- Ошибка: Invalid argument supplied for foreach() in ... (09.04.2017)
- Загрузка файлов (картинок) по ajax через форму для Opencart (04.09.2016)
- Модальное окно Bootstrap 3 с формой, отправляющей email по Ajax (JQuery/PHP/HTML5/JqBootstrapValidation) (20.08.2015)
- VQmod — да или нет? (29.08.2014)
- Настройка PhpStorm для работы с Yii (24.02.2013)
- Флаги в подстановке директивы модуля - RewriteRule в файле .htaccess. Важность флага QSA. (02.01.2013)
- Как корректно вставить в MySQL текст с кавычками, используя PHP? (06.12.2012)
- Как объединить два массива в один на PHP (слить элементы массивов) (18.09.2012) ← вы тут
- Команды для сron job (для планировщика Cron на хостинге) (29.08.2012)
- Отправка сообщений в Twitter через php (13.08.2012)
1 комментарий
Я обычно в такой ситуации делаю тестовый стенд и проверяю как работает:
$a = array('1' => 1, 'a' => 11, 2 => 111);
$b = array('1' => 2, 'a' => 22, 2 => 222);var_dump(array_merge($a, $b));
array(5) {
[0] =>
int(1)
'a' =>
int(22)
[1] =>
int(111)
[2] =>
int(2)
[3] =>
int(222)
}
var_dump($a+$b);
array(3) {
[1] =>
int(1)
'a' =>
int(11)
[2] =>
int(111)
}