РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1002 of 1392 menu

Метод 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.

Смотрите также

  • метод flatten,
    который разворачивает все уровни вложенности
  • метод merge,
    который объединяет коллекции без развёртывания
  • метод concat,
    который добавляет элементы в конец коллекции
  • метод values,
    который возвращает все значения коллекции
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить