Метод collapse
Метод collapse применяется к коллекции и возвращает новую коллекцию,
содержащую все элементы из вложенных массивов или коллекций.
Этот метод полезен, когда нужно преобразовать коллекцию коллекций
в плоскую структуру. Метод работает рекурсивно только на один уровень
вложенности. Если нужно развернуть все уровни, используйте метод
flatten.
Синтаксис
<?php
$collection->collapse();
?>
Пример
Давайте создадим коллекцию из вложенных массивов и применим метод
collapse для получения плоского списка элементов:
<?php
use Illuminate\Support\Collection;
$collection = new Collection([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]);
$res = $collection->collapse();
echo $res;
?>
Результат выполнения кода:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Пример
Давайте рассмотрим работу метода collapse с коллекцией,
содержащей как массивы, так и другие коллекции:
<?php
use Illuminate\Support\Collection;
$collection = new Collection([
['a', 'b', 'c'],
collect(['d', 'e']),
['f', 'g']
]);
$res = $collection->collapse();
echo $res;
?>
Результат выполнения кода:
["a", "b", "c", "d", "e", "f", "g"]
Пример
Метод collapse работает только с одним уровнем вложенности.
Давайте посмотрим, как это влияет на коллекцию с глубокой вложенностью:
<?php
use Illuminate\Support\Collection;
$collection = new Collection([
[1, [2, 3]],
[[4, 5], 6],
[7, [8, 9]]
]);
$res = $collection->collapse();
echo $res;
?>
Результат выполнения кода:
[1, [2, 3], [4, 5], 6, 7, [8, 9]]
Как видите, внутренние массивы на втором уровне вложенности не были
развернуты. Для полного развертывания используйте метод flatten.