Builder
Коллекции
Коллекции - это набор инструментов для работы с массивами и коллекциями данных.
Коллекции позволяет работать с данными более эффективно и удобно, чем стандартные функции PHP.
Коллекции позволяет работать с данными более эффективно и удобно, чем стандартные функции PHP.
Коллекции предоставляет множество методов для работы с коллекциями данных, таких как сортировка, фильтрация, группировка, поиск, преобразование и т.д.
Эти методы позволяют быстро и легко получать нужные данные из больших массивов и коллекций.
Эти методы позволяют быстро и легко получать нужные данные из больших массивов и коллекций.
Кроме того, коллекции поддерживает цепочку методов, которая позволяет выполнять несколько операций над коллекцией данных одновременно. Это значительно упрощает код и повышает его читаемость.
- Преобразование коллекции в массив (all)
- Получение элемента по ключу (get)
- Получение первой записи (first)
- Получение последней записи (last)
- Удаление и получение записи из коллекции (pull)
- Удаление записи из коллекции (forget)
- Получение всех ключей коллекции (keys)
- Получение всех значений коллекции (values)
- Проверка ключа на существование (has)
- Проверка значение на существование (contains)
- Поиск значения в коллекции (search)
- Получение количества записей в коллекции (count)
- Установка значения в коллекции (put)
- Добавление записи в коллекцию (push)
- Проверка коллекции на пустоту (isEmpty)
- Проверка коллекции на заполненность (isNotEmpty)
- Очистка коллекции (clear)
- Срез коллекции (slice)
- Получение всех записей по ключу (pluck)
- Фильтрация записей (filter)
Преобразование коллекции в массив (all)
Метод all() возвращает заданный массив, представленный коллекцией:(new Collection([1, 2, 3]))->all(); // [1, 2, 3]
Получение элемента по ключу (get)
Метод get() возвращает нужный элемент по заданному ключу. Если ключ не существует, то возвращается null:$collection = new Collection(['name' => 'Vantuz', 'cms' => 'motor']); $value = $collection->get('name'); // VantuzВторым параметром вы можете передать значение по умолчанию:
$collection = new Collection(['name' => 'Vantuz', 'cms' => 'motor']); $value = $collection->get('foo', 'default-value'); // default-value
Получение первой записи (first)
Метод first() возвращает первый элемент в коллекции, который проходит заданный тест на истинность:(new Collection([1, 2, 3, 4]))->first(function (int $value, int $key) { return $value > 2; }); // 3Вы также можете вызвать first() метод без аргументов, чтобы получить первый элемент в коллекции. Если коллекция пуста, то возвращается null:
(new Collection([1, 2, 3, 4]))->first(); // 1
Получение последней записи (last)
Метод last() возвращает последний элемент в коллекции, который проходит заданный тест на истинность:(new Collection([1, 2, 3, 4]))->last(function (int $value, int $key) { return $value < 3; }); // 2Вы также можете вызвать last() метод без аргументов, чтобы получить последний элемент в коллекции. Если коллекция пуста, то возвращается null:
(new Collection([1, 2, 3, 4]))->last(); // 4
Удаление и получение записи из коллекции (pull)
Метод pull() удаляет и возвращает элемент из коллекции по его ключу:$collection = new Collection(['product_id' => 'prod-100', 'name' => 'Desk']); $collection->pull('name'); // 'Desk' $collection->all(); // ['product_id' => 'prod-100']
Удаление записи из коллекции (forget)
Метод forget() удаляет элемент из коллекции по его ключу:$collection = new Collection(['name' => 'Vantuz', 'cms' => 'motor']); $collection->forget('name'); $collection->all(); // ['cms' => 'motor']
Получение всех ключей коллекции (keys)
Метод keys() возвращает все ключи коллекции:$collection = new Collection([ 'prod-100' => ['product_id' => 'prod-100', 'name' => 'Desk'], 'prod-200' => ['product_id' => 'prod-200', 'name' => 'Chair'], ]); $keys = $collection->keys(); $keys->all(); // ['prod-100', 'prod-200']
Получение всех значений коллекции (values)
Метод values() возвращает новую коллекцию со сброшенными ключами и последовательно пронумерованными индексами:$collection = new Collection([ 10 => ['product' => 'Desk', 'price' => 200], 11 => ['product' => 'Desk', 'price' => 200] ]); $values = $collection->values(); $values->all(); /*[ 0 => ['product' => 'Desk', 'price' => 200], 1 => ['product' => 'Desk', 'price' => 200], ]*/
Проверка ключа на существование (has)
Метод has() определяет, существует ли заданный ключ в коллекции:$collection = new Collection(['account_id' => 1, 'product' => 'Desk']); $collection->has('product'); // true
Проверка значение на существование (contains)
Метод contains() определяет, содержит ли коллекция данный элемент. Вы можете передать методу замыкание contains(), чтобы определить, существует ли в коллекции элемент, соответствующий данному критерию истинности:$collection = new Collection([1, 2, 3, 4, 5]); $collection->contains(function (int $value, int $key) { return $value > 5; }); / falseВ качестве альтернативы вы можете передать строку методу contains(), чтобы определить, содержит ли коллекция заданное значение элемента:
$collection = new Collection(['name' => 'Desk', 'price' => 100]); $collection->contains('Desk'); // true $collection->contains('New York'); // false
Поиск значения в коллекции (search)
Метод search() ищет в коллекции заданное значение и возвращает его ключ при успешном поиске. Если элемент не найден, то возвращается false.$collection = new Collection([2, 4, 6, 8]); $collection->search(4); // 1Поиск проводится с помощью «неточного» сравнения, то есть строка с числовым значением будет считаться равной числу с таким же значением. Чтобы использовать строгое сравнение, передайте true вторым параметром метода:
$collection->search('4', true); // falseВ качестве альтернативы вы можете передать собственное замыкание для поиска первого элемента, который проходит указанный тест на истинность:
$collection->search(function ($item, $key) { return $item > 5; }); // 2
Получение количества записей в коллекции (count)
Метод count() возвращает общее количество элементов в коллекции:$collection = new Collection([1, 2, 3, 4]); $collection->count(); // 4
Установка значения в коллекции (put)
Метод put() устанавливает заданный ключ и значение в коллекцию:$collection = new Collection(['product_id' => 1, 'name' => 'Desk']); $collection->put('price', 100); $collection->all(); // ['product_id' => 1, 'name' => 'Desk', 'price' => 100]
Добавление записи в коллекцию (push)
Метод push() добавляет элемент в конец коллекции:$collection = new Collection([1, 2, 3, 4]); $collection->push(5); $collection->all(); // [1, 2, 3, 4, 5]
Проверка коллекции на пустоту (isEmpty)
Метод isEmpty() возвращает true, если коллекция пуста. В противном случае вернётся false:$collection = new Collection([]); $collection->isEmpty(); // true
Проверка коллекции на заполненность (isNotEmpty)
Метод isNotEmpty() возвращает true, если коллекция не пустая. В противном случае вернётся false:$collection = new Collection([1, 2, 3]); $collection->isNotEmpty(); // true
Очистка коллекции (clear)
$collection = new Collection([1, 2, 3]); $slice = $collection->clear(); // []
Срез коллекции (slice)
Метод slice() возвращает часть коллекции, начиная с заданного индекса:$collection = new Collection([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); $slice = $collection->slice(4); $slice->all(); // [5, 6, 7, 8, 9, 10]Если вы хотите ограничить размер получаемой части коллекции, передайте желаемый размер вторым параметром в метод:
$slice = $collection->slice(4, 2); $slice->all(); // [5, 6]
Получение всех записей по ключу (pluck)
Метод pluck() извлекает все значения по заданному ключу:$collection = new Collection([ ['login' => 'Alex', 'name' => 'Саня'], ['login' => 'Viktor', 'name' => 'Виктор'], ]); // ['Саня', 'Виктор']Также вы можете указать, с каким ключом вы хотите получить коллекцию:
$collection->pluck('name', 'login'); $collection->all(); //['Alex' => 'Саня', 'Viktor' => 'Виктор']
Фильтрация записей (filter)
Метод filter() фильтрует коллекцию, используя callback-функции, eсли callback-функция возвращает true, данное значение возвращается в результирующую коллекцию:$collection = new Collection([1, 2, 3, 4]); $filtered = $collection->filter(function (int $value, int $key) { return $value > 2; }); $filtered->all(); // [3, 4]Если callback-функция не указана все пустые значения массива array будут удалены
$collection = new Collection([1, 2, 3, null, false, '', 0, []]); $collection->filter()->all(); // [1, 2, 3]