{{TOC}} {{DOCVER 5.3=c06d6a2352ed8c767633aab9c20f2bf7d880c967 28.01.2017 5:00:51, 5.2=6b0b057ae6de3c88cb29188459e38383c622ec23 8.12.2016 23:00:15, 5.1=cdc24ba7426c5b11eb4d050706bd78c3ea4913cc 19.06.2016 20:08:01, 5.0=5d10040a981deee82c0fde0e8e5d2ffc49eaaecb 8.02.2016 18:09:11}} immutable == Введение == Класс %%(t)Illuminate\Support\Collection%% предоставляет гибкую и удобную обёртку для работы с массивами данных. Например, посмотрите на следующий код. Мы будем использовать вспомогательную функцию %%collect()%%, чтобы создать новый экземпляр коллекции из массива, выполним функцию %%strtoupper()%% для каждого элемента, а затем удалим все пустые элементы: %% $collection = collect(['taylor', 'abigail', null])->map(function ($name) { return strtoupper($name); }) ->reject(function ($name) { return empty($name); }); %% Как видите, класс %%(t)Collection%% позволяет использовать свои методы в связке для гибкого отображения и уменьшения исходного массива. В общем, коллекции "неизменны", то есть каждый метод класса %%(t)Collection%% возвращает совершенно новый экземпляр %%(t)Collection%%. === Создание коллекций === Как упоминалось выше, вспомогательная функция %%collect()%% возвращает новый экземпляр класса %%(t)Illuminate\Support\Collection%% для заданного массива. Поэтому создать коллекцию очень просто: %% $collection = collect([1, 2, 3]); %% .(alert) Результаты запросов ((/docs/v5/eloquent Eloquent)) всегда возвращаются в виде экземпляров класса %%(t)Collection%%. == Доступные методы == В остальной части данной документации, мы будем обсуждать каждый метод, доступный в классе %%(t)Collection%%. Помните, все эти методы могут использоваться в связке для гибкого управления заданным массивом. Кроме того, почти каждый метод возвращает новый экземпляр класса %%(t)Collection%%, позволяя вам при необходимости сохранить оригинал коллекции: ((/docs/v5/collections#all all)) ((/docs/v5/collections#avg avg)) ((/docs/v5/collections#chunk chunk)) ((/docs/v5/collections#collapse collapse)) ((/docs/v5/collections#combine combine)) ((/docs/v5/collections#contains contains)) ((/docs/v5/collections#count count)) ((/docs/v5/collections#diff diff)) ((/docs/v5/collections#diffkeys diffKeys)) ((/docs/v5/collections#each each)) ((/docs/v5/collections#every every)) ((/docs/v5/collections#except except)) ((/docs/v5/collections#filter filter)) ((/docs/v5/collections#first first)) ((/docs/v5/collections#flatmap flatMap)) ((/docs/v5/collections#flatten flatten)) ((/docs/v5/collections#flip flip)) ((/docs/v5/collections#forget forget)) ((/docs/v5/collections#forpage forPage)) ((/docs/v5/collections#get get)) ((/docs/v5/collections#groupby groupBy)) ((/docs/v5/collections#has has)) ((/docs/v5/collections#implode implode)) ((/docs/v5/collections#intersect intersect)) ((/docs/v5/collections#isempty isEmpty)) ((/docs/v5/collections#keyby keyBy)) ((/docs/v5/collections#keys keys)) ((/docs/v5/collections#last last)) ((/docs/v5/collections#map map)) ((/docs/v5/collections#mapwithkeys mapWithKeys)) ((/docs/v5/collections#max max)) ((/docs/v5/collections#merge merge)) ((/docs/v5/collections#min min)) ((/docs/v5/collections#only only)) ((/docs/v5/collections#pipe pipe)) ((/docs/v5/collections#pluck pluck)) ((/docs/v5/collections#pop pop)) ((/docs/v5/collections#prepend prepend)) ((/docs/v5/collections#pull pull)) ((/docs/v5/collections#push push)) ((/docs/v5/collections#put put)) ((/docs/v5/collections#random random)) ((/docs/v5/collections#reduce reduce)) ((/docs/v5/collections#reject reject)) ((/docs/v5/collections#reverse reverse)) ((/docs/v5/collections#search search)) ((/docs/v5/collections#shift shift)) ((/docs/v5/collections#shuffle shuffle)) ((/docs/v5/collections#slice slice)) ((/docs/v5/collections#sort sort)) ((/docs/v5/collections#sortby sortBy)) ((/docs/v5/collections#sortbydesc sortByDesc)) ((/docs/v5/collections#splice splice)) ((/docs/v5/collections#split split)) ((/docs/v5/collections#sum sum)) ((/docs/v5/collections#take take)) ((/docs/v5/collections#toarray toArray)) ((/docs/v5/collections#tojson toJson)) ((/docs/v5/collections#transform transform)) ((/docs/v5/collections#union union)) ((/docs/v5/collections#unique unique)) ((/docs/v5/collections#values values)) ((/docs/v5/collections#where where)) ((/docs/v5/collections#wherestrict whereStrict)) ((/docs/v5/collections#whereloose whereLoose)) ((/docs/v5/collections#wherein whereIn)) ((/docs/v5/collections#whereinstrict whereInStrict)) ((/docs/v5/collections#whereinloose whereInLoose)) ((/docs/v5/collections#zip zip)) == Список методов == ((#all)) **all()** Метод %%all()%% возвращает заданный массив, представленный коллекцией: %% collect([1, 2, 3])->all(); // [1, 2, 3] %% ((#avg)) **avg()** Метод %%avg()%% возвращает среднее значение всех элементов в коллекции: %% collect([1, 2, 3, 4, 5])->avg(); // 3 %% Если коллекция содержит вложенные массивы или объекты, то вы должны передать ключ, чтобы определить, среднее значение каких значений необходимо вычислить: %% $collection = collect([ ['name' => 'JavaScript: The Good Parts', 'pages' => 176], ['name' => 'JavaScript: The Definitive Guide', 'pages' => 1096], ]); $collection->avg('pages'); // 636 %% ((#chunk)) **chunk()** Метод %%chunk()%% разбивает коллекцию на множество мелких коллекций заданного размера: %% $collection = collect([1, 2, 3, 4, 5, 6, 7]); $chunks = $collection->chunk(4); $chunks->toArray(); // [[1, 2, 3, 4], [5, 6, 7]] %% Этот метод особенно полезен в ((/docs/v5/views представлениях)) при работе с системой сеток, такой как ((https://getbootstrap.com/css/#grid Bootstrap)). Представьте, что у вас есть коллекция моделей ((/docs/v5/eloquent Eloquent)), которую вы хотите отобразить в сетке: %% @foreach ($products->chunk(3) as $chunk)