#php #laravel
Вопрос:
У меня есть массив данных, который приведен ниже. И я прикрепил скриншот dd($data['attendances'])
вывода здесь. Я использую цикл for для подсчета, но он не работает. Вопрос в том, как я могу подсчитать предметы коллекции, которые у registered = 'no'
меня есть ? Любая помощь будет очень признательна.
$data = [
'employee' => $employee,
'attendances' => $attendances,
'filter' => $filter,
'no_records' => "No Records",
'weekend' => "Weekly Off"
];
for ( $i=0; $i <= count($data['attendances']); $i ){
if ($data['attendances'][$i]['registered'] = 'no'){
echo count($data['attendances'][$i]['registered']);
}
}
// dd($data['attendances']);
Приведенный выше for
цикл кода выдает ошибку, которая:
count(): Параметр должен быть массивом или объектом, реализующим счетный
Ответ №1:
Для подсчета всех предметов коллекции registered
, которые должны no
:
dd($data['attendances']->where('registered', 'no')->count());
Вы можете найти все методы обработки коллекции в документации здесь: https://laravel.com/docs/8.x/collections#available-methods
В этом случае мы сначала используем ->where
фильтрацию коллекции (беря только элементы с registered
to no
), а затем используем count
метод для подсчета их количества.
Комментарии:
1. Без проблем, я обновил свой ответ некоторыми объяснениями и дополнительной информацией. Хорошего дня
2. не уверен
count(array($data['attendances']));