Одномерные массивы в PHP можно складывать с помощью функции array_merge() и оператора сложения "+". И каждый раз приходится вспоминать, в чем разница в использовании этих двух способов сложения массивов.
Когда ключи не важны и нужно просто объединить массивы, используйте функцию array_merge().
$sum = array_merge($old1, $old2, $old3, ...)
Старые ключи вообще не учитываются. Создаются новые числовые ключи, начиная с 0.
То есть, бояться совпадения ключей не нужно.
Повторяющиеся значения нужно удалить с помощью функции array_unique(), и заготовка для слияния значений массивов будет выглядеть так:
Если ключи важны (хоть ассоциативные, хоть числовые) и вам нужно обновить элементы одного массива элементами из других массивов, используйте функцию array_replace().
Этот способ сложения сложения массивов аналогичен предыдущему. Следует только обратить внимание на то, что здесь, чтобы обновить старый массив новым, нужно к новому массиву прибавить старый, что немного ломает мозг. Преимущества этого способа сложения — он производительнее и короче в записи.
Полезный пример использования такого сложения — массив в качестве параметра функции, когда значения по умолчанию обновляются входными данными:
function f($x, $options=[])
{
$options += ['x' => 10, 'y' => false]; # defaults
...
}
Внимание! Выше были приведены примеры только для одномерных массивов. Мы рекомендуем вам пользоваться универсальным методом Arr::mergeByKey(), который складывает по ключам массивы любого типа и любой размерности.