Метод collapse
Метод collapse класса Arr предназначен для преобразования многомерного массива в одномерный путём объединения всех вложенных массивов на один уровень. В результате возвращается новый массив, содержащий все элементы из каждого подмассива исходного массива. Метод полезен, когда необходимо объединить данные из нескольких вложенных структур или коллекций.
Синтаксис
<?php
use Illuminate\Support\Arr;
$res = Arr::collapse($array);
?>
Метод принимает один параметр - исходный массив для преобразования, и возвращает новый одномерный массив с элементами всех подмассивов.
Пример
Давайте объединим несколько массивов с числами в один:
<?php
use Illuminate\Support\Arr;
$arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
$res = Arr::collapse($arr);
print_r($res);
?>
Результат выполнения кода:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Пример
Объединим массивы со строками в один список:
<?php
use Illuminate\Support\Arr;
$arr = [['a', 'b'], ['c', 'd'], ['e', 'f']];
$res = Arr::collapse($arr);
print_r($res);
?>
Результат выполнения кода:
["a", "b", "c", "d", "e", "f"]
Пример
Метод collapse может обрабатывать ассоциативные массивы, сохраняя значения, но игнорируя ключи верхнего уровня:
<?php
use Illuminate\Support\Arr;
$arr = [
'first' => [1, 2, 3],
'second' => [4, 5, 6],
'third' => [7, 8, 9]
];
$res = Arr::collapse($arr);
print_r($res);
?>
Результат выполнения кода:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Пример
Если один из элементов не является массивом, то он будет сохранён как есть:
<?php
use Illuminate\Support\Arr;
$arr = [[1, 2], 3, [4, 5]];
$res = Arr::collapse($arr);
print_r($res);
?>
Результат выполнения кода:
[1, 2, 3, 4, 5]
Обратите внимание, что число 3 не являлось массивом и было сохранено в результирующем массиве.