Наполните свои коллекции Laravel методами фильтрации

Класс коллекций Laravel — мощный инструмент, позволяющий работать с массивами данных более выразительно и удобно. Одной из важнейших задач при работе с коллекциями является фильтрация данных для извлечения только тех элементов, которые соответствуют определенным критериям. В этой статье мы рассмотрим несколько полезных методов фильтрации, предоставляемых классом коллекции Laravel, вместе с примерами кода. Итак, давайте углубимся и усовершенствуем ваши коллекции Laravel фильтрами!

  1. filter()
    Метод filter()позволяет фильтровать коллекцию на основе заданной функции обратного вызова. Обратный вызов должен возвращать trueдля элементов, которые вы хотите сохранить в отфильтрованной коллекции.

Пример:

$collection = collect([1, 2, 3, 4, 5]);
$filtered = $collection->filter(function ($value, $key) {
    return $value % 2 == 0;
});
// Output: [2, 4]
  1. 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]]
  1. whereStrict()
    Подобно where(), метод whereStrict()фильтрует коллекцию на основе строгого равенства ключей и значений.

Пример:

$collection = collect([
    ['name' => 'John', 'age' => 25],
    ['name' => 'Jane', 'age' => '30'],
]);
$filtered = $collection->whereStrict('age', 30);
// Output: [['name' => 'Jane', 'age' => '30']]
  1. reject()
    Метод reject()фильтрует коллекцию, удаляя элементы, соответствующие заданным условиям. Он возвращает новую коллекцию с отклоненными элементами.

Пример:

$collection = collect([1, 2, 3, 4, 5]);
$filtered = $collection->reject(function ($value, $key) {
    return $value % 2 == 0;
});
// Output: [1, 3, 5]
  1. 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 и поднимите манипулирование данными на новый уровень!