Эффективные способы объединения нескольких массивов в один массив в PHP

Работа с массивами — распространенная задача при разработке PHP. Иногда вы можете столкнуться со сценариями, когда вам нужно объединить несколько массивов в один сглаженный массив. В этой статье мы рассмотрим несколько методов достижения этой цели в PHP, а также примеры кода. Давайте погрузимся!

Метод 1: использование оператора array_merge и splat (PHP 5.6+)

$multipleArrays = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];
$flattenedArray = array_merge(...$multipleArrays);

Метод 2: использование array_reduce

$multipleArrays = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];
$flattenedArray = array_reduce($multipleArrays, 'array_merge', []);

Метод 3: использование call_user_func_array

$multipleArrays = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];
$flattenedArray = call_user_func_array('array_merge', $multipleArrays);

Метод 4. Использование array_merge и array_map

$multipleArrays = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];
$flattenedArray = call_user_func_array('array_merge', array_map('array_values', $multipleArrays));

Метод 5: использование array_reduce и array_merge_recursive

$multipleArrays = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];
$flattenedArray = array_reduce($multipleArrays, 'array_merge_recursive', []);

Метод 6: использование RecursiveIteratorIterator и RecursiveArrayIterator

$multipleArrays = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];
$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($multipleArrays));
$flattenedArray = iterator_to_array($iterator, false);

Метод 7. Использование собственной рекурсивной функции

function flattenArray($array) {
    $result = [];
    foreach ($array as $item) {
        if (is_array($item)) {
            $result = array_merge($result, flattenArray($item));
        } else {
            $result[] = $item;
        }
    }
    return $result;
}
$multipleArrays = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];
$flattenedArray = flattenArray($multipleArrays);

В этой статье мы рассмотрели несколько методов объединения нескольких массивов в один в PHP. Каждый метод предлагает свой подход, что позволяет вам выбрать тот, который лучше всего соответствует вашим конкретным требованиям. Обсуждаемые здесь методы помогут вам эффективно решать задачи выравнивания массивов в ваших проектах PHP.