Разница между array_merge и + (оператор плюс) в PHP

Возможно, не только я забываю, чем именно отличается функция array_merge() от оператора объединения +, примененного к массивам.

Допустим, у нас два массива, $a и $b, тогда array_merge($a, $b); и $a+$b оба произведут объединение элементов этих массивов, но с нюансами, которые я вывел в таблицу. Итак, при выполнении обеих операций берутся в расссмотрение индексы  или ключи массивов и сравниваются между собой. Ключи могут быть числовыми (индексы) и строковыми (ассоциативный массив).

Индексы array_merge ($a, $b) $a+$b
Несовпадающие строковые ключи Элементы просто добавляются Элементы просто добавляются
Совпадающие строковые ключи Элементы из массива $b в результате Элементы из массива $a в результате
Несовпадющие численные индексы Элементы добавляются. Индексы не сохраняются, идет переидексация массива, начиная с 0 Элементы добавляются. Индексы остаются, как были
Совпадающие численные индексы В результате будут ВСЕ элементы из обоих массивов, далее идет переидексация результирующего массива, начиная с 0 Элементы из массива $a в результате

 

1 комментарий

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.