Объединение массивов в PHP
Для объединения массивов в PHP существует несколько способов:
1. Использование оператора "+" или array_merge():
$array1 = [1, 2, 3];
$array2 = [4, 5, 6];
$result = $array1 + $array2;
// Результат: [1, 2, 3, 4, 5, 6]
$result = array_merge($array1, $array2);
// Результат: [1, 2, 3, 4, 5, 6]
Оба метода объединяют два массива, но есть небольшая разница в их работе. Оператор "+" сохраняет только первое встреченное значение при дублировании элементов, в то время как array_merge() сохраняет все значения, включая дубликаты.
2. Использование функции array_merge_recursive():
$array1 = [1, 2, 3];
$array2 = [4, 5, 6];
$result = array_merge_recursive($array1, $array2);
// Результат: [1, 2, 3, 4, 5, 6]
Функция array_merge_recursive() позволяет объединять массивы таким образом, что дублирующиеся значения сохраняются как массивы.
3. Использование оператора "..." (спред-оператор):
$array1 = [1, 2, 3];
$array2 = [4, 5, 6];
$result = [...$array1, ...$array2];
// Результат: [1, 2, 3, 4, 5, 6]
Спред-оператор позволяет распаковать элементы массива в другой массив, что сразу объединяет их.
Также, если у вас есть несколько массивов, которые нужно объединить, вы можете использовать функцию array_merge() со стрелочной функцией и функцию array_reduce():
$arrays = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
$result = array_reduce($arrays, fn($carry, $array) => array_merge($carry, $array), []);
// Результат: [1, 2, 3, 4, 5, 6, 7, 8, 9]
Функция array_reduce() применяет стрелочную функцию к массиву, последовательно объединяя его элементы и сохраняя результат в переменной $carry. Используется функция array_merge() для объединения каждого элемента в итоговом массиве.
Все эти методы позволяют объединять массивы и создавать новый массив, содержащий все элементы из исходных массивов.