Автор оригинала: David Wong.
Эта статья переслана из профессионального сообщества разработчиков laravel, оригинальная ссылка: https://learnku.com/laravel/t…
В laravel есть очень полезный класс для управления массивами, называемый коллекциями. Я считаю, что каждый разработчик laravel более или менее использовал коллекцию, особенно при работе с красноречивыми. В этой статье я перечислю 10 распространенных методов.
1. Удаление веса
дубликаты Метод извлечения всех повторяющихся значений в коллекции. Возвращаемый массив содержит ключ для каждого значения в исходном массиве.
2. Пройдитесь по набору
Не используется для каждого Вы также можете просмотреть коллекцию, используя каждый метод. Как обычно foreach Таким же образом, каждый Метод также имеет два параметра, которые являются элементом и ключ 。
each(function ($item, $key) {
// Do stuff
});3. Набор выходных данных отладки
Когда мы отлаживаем код, нам часто требуется вывод, чтобы просмотреть содержимое коллекции. В дополнение к использованию дампа($коллекция) Кроме того, вы также можете использовать дамп Способ, использующий дамп Преимущество этого метода заключается в том, что результат выглядит чище и свежее.
dump();
/*
Collection {
#items: array:3 [
0 => "james"
1 => "lisa"
2 => "ryan"
]
}
*/Если вы хотите вывести содержимое коллекции и точки останова, вы можете использовать dd (вывод и завершение) метод.
4. Имеет
Метод has можно использовать для проверки наличия ключа в коллекции. Параметр может быть строкой или массивом. Если массив передается в качестве параметра, все значения в массиве должны быть ключами в коллекции, прежде чем результат сможет вернуть значение true. В противном случае возвращается значение false.
'Harry Potter',
'author' => 'J.K. Rowling',
'price' => 25
]);
$collection->has('author'); // true
$collection->has(['title', 'price']); // true
$collection->has(['price', 'rating']); // false5. Взорваться
взорваться Метод объединения значений в коллекции. Функция этого метода такая же, как и в PHP implode Метод очень похож.
'Gift card', 'price' => 50],
['title' => 'Chair', 'price' => 80],
]);
$collection->implode('title', ', ');
// Gift card, ChairЕсли значение в коллекции представляет собой просто строку или число, вы просто передаете соединитель в качестве аргумента.
implode('-');
// 1-2-foo-3-bar6. Толкай и тяни
есть доступ к push Метод добавляет элемент в конец коллекции. Если вам нужно добавить в начало коллекции, вы можете использовать метод добавить .
push(4); $collection->all(); // [1, 2, 3, 4]
Метод pull удаляет данный ключ из коллекции и возвращает его соответствующее значение.
'Harry Potter',
'author' => 'J.K. Rowling',
'price' => 25
]);
$collection->pull('author'); // 'J.K. Rowling'
$collection->all(); // ['title' => 'Harry Potter', 'price' => 25]7. Способ перемешивания
Метод shuffle случайным образом сортирует элементы в коллекции.
shuffle(); $shuffled->all(); // [3, 1, 2] (random example)
8. Максимальный метод
Вы можете использовать метод max, чтобы получить максимальное значение в коллекции. Если коллекция содержит массивы, вы можете передать параметры, чтобы получить максимальное значение ключа.
'Gift card', 'price' => 50],
['title' => 'Chair', 'price' => 80]
])->max('price'); // 80
$max = collect([1, 2, 3])->max(); // 39. Фильтр
есть доступ к фильтру Способ фильтрации коллекции. Этот метод принимает функцию обратного вызова в качестве аргумента. Определите правила фильтрации в функции обратного вызова. В коллекции можно оставить только те значения, которые соответствуют правилам.
filter(function ($value, $key) {
return $value % 2 == 0;
});
$even_numbers->all(); // [2, 4, 6, 8, 10]10. Ломтик
срез Метод может быть использован для разделения коллекции и возврата позиции индекса, указанной параметром, и значения после него. Массив возвращаемых значений будет содержать ключ исходного массива.
Обратите внимание, что в следующем примере переданный параметр равен 2. Это означает, что коллекция разделена по индексу 2 и нет Значения элемента 2 в массиве.
slice(2); $sliced->all(); // [3, 4, 5]
Оригинал: “https://developpaper.com/sharing-10-useful-methods-of-laravel-5-8-sets/”