Класс коллекций Laravel — мощный инструмент, позволяющий работать с массивами данных более выразительно и удобно. Одной из важнейших задач при работе с коллекциями является фильтрация данных для извлечения только тех элементов, которые соответствуют определенным критериям. В этой статье мы рассмотрим несколько полезных методов фильтрации, предоставляемых классом коллекции Laravel, вместе с примерами кода. Итак, давайте углубимся и усовершенствуем ваши коллекции Laravel фильтрами!
- filter()
Методfilter()позволяет фильтровать коллекцию на основе заданной функции обратного вызова. Обратный вызов должен возвращатьtrueдля элементов, которые вы хотите сохранить в отфильтрованной коллекции.
Пример:
$collection = collect([1, 2, 3, 4, 5]);
$filtered = $collection->filter(function ($value, $key) {
return $value % 2 == 0;
});
// Output: [2, 4]
- where()
Методwhere()фильтрует коллекцию на основе пар ключ-значение. Он возвращает новую коллекцию, содержащую только те элементы, которые соответствуют указанным условиям.
Пример:
$collection = collect([
['name' => 'John', 'age' => 25],
['name' => 'Jane', 'age' => 30],
['name' => 'Mark', 'age' => 35],
]);
$filtered = $collection->where('age', '>', 28);
// Output: [['name' => 'Jane', 'age' => 30], ['name' => 'Mark', 'age' => 35]]
- whereStrict()
Подобноwhere(), методwhereStrict()фильтрует коллекцию на основе строгого равенства ключей и значений.
Пример:
$collection = collect([
['name' => 'John', 'age' => 25],
['name' => 'Jane', 'age' => '30'],
]);
$filtered = $collection->whereStrict('age', 30);
// Output: [['name' => 'Jane', 'age' => '30']]
- reject()
Методreject()фильтрует коллекцию, удаляя элементы, соответствующие заданным условиям. Он возвращает новую коллекцию с отклоненными элементами.
Пример:
$collection = collect([1, 2, 3, 4, 5]);
$filtered = $collection->reject(function ($value, $key) {
return $value % 2 == 0;
});
// Output: [1, 3, 5]
- whereIn()
МетодwhereIn()фильтрует коллекцию на основе наличия заданных значений в указанном ключе. Он возвращает новую коллекцию с совпадающими элементами.
Пример:
$collection = collect([
['name' => 'John', 'age' => 25],
['name' => 'Jane', 'age' => 30],
['name' => 'Mark', 'age' => 35],
]);
$filtered = $collection->whereIn('age', [30, 35]);
// Output: [['name' => 'Jane', 'age' => 30], ['name' => 'Mark', 'age' => 35]]
В этой статье мы рассмотрели несколько мощных методов фильтрации, доступных в классе коллекций Laravel. Используя эти методы, вы можете легко фильтровать свои коллекции и извлекать нужные данные на основе различных условий. Если вам нужна фильтрация по функциям обратного вызова, парам ключ-значение, строгому равенству или присутствию в заданном наборе, коллекция Laravel поможет вам. Начните использовать эти методы фильтрации в своих проектах Laravel и поднимите манипулирование данными на новый уровень!