Коллекции Laravel предоставляют мощный и выразительный способ работы с массивами данных в ваших приложениях Laravel. Одна из распространенных задач, с которой вы можете столкнуться, — это удаление нулевых значений из коллекции. В этой статье мы рассмотрим различные методы, доступные в коллекциях Laravel для достижения этой цели. Итак, хватайте чашечку кофе и начнем!
Метод 1: filter()
Метод filter()позволяет фильтровать коллекцию на основе заданного обратного вызова или замыкания. Мы можем использовать этот метод для удаления нулевых значений, определив замыкание, которое проверяет наличие нуля и возвращает false, если значение равно нулю.
$collection = collect(['apple', null, 'banana', null, 'cherry']);
$filtered = $collection->filter(function ($value) {
return !is_null($value);
});
// Output: ['apple', 'banana', 'cherry']
Метод 2: ignore()
Подобно filter(), метод reject()фильтрует коллекцию на основе заданного обратного вызова или замыкания. Однако он возвращает значения, которые не соответствуют условию обратного вызова. В нашем случае мы можем использовать его для отклонения нулевых значений.
$collection = collect(['apple', null, 'banana', null, 'cherry']);
$filtered = $collection->reject(function ($value) {
return is_null($value);
});
// Output: ['apple', 'banana', 'cherry']
Метод 3:whereNotNull()
Метод whereNotNull()специально разработан для фильтрации значений, имеющих значение NULL. Он возвращает новую коллекцию, содержащую только ненулевые значения.
$collection = collect(['apple', null, 'banana', null, 'cherry']);
$filtered = $collection->whereNotNull();
// Output: ['apple', 'banana', 'cherry']
Метод 4: ignore()
Метод forget()позволяет удалить элемент из коллекции по его ключу. Мы можем перебрать коллекцию и удалить ключи с нулевыми значениями.
$collection = collect(['apple', null, 'banana', null, 'cherry']);
$collection->each(function ($value, $key) use ($collection) {
if (is_null($value)) {
$collection->forget($key);
}
});
// Output: ['apple', 'banana', 'cherry']
Метод 5: map() с filter()
Объединив методы map()и filter(), мы можем добиться того же результата. Метод map()позволяет нам перебирать коллекцию и изменять ее значения. Мы можем использовать его для создания новой коллекции, исключая нулевые значения.
$collection = collect(['apple', null, 'banana', null, 'cherry']);
$filtered = $collection->map(function ($value) {
return $value;
})->filter();
// Output: ['apple', 'banana', 'cherry']
В этой статье мы рассмотрели несколько методов удаления нулевых значений из коллекции Laravel. Вы можете выбрать метод, который лучше всего соответствует вашему стилю кодирования и требованиям проекта. Используются ли filter(), reject(), whereNotNull(), forget()или комбинация map()и filter(), коллекции Laravel предоставляют гибкий и элегантный способ решения задач по манипулированию данными. Так что вперед, наведите порядок в своих коллекциях и наслаждайтесь мощью Laravel!