Я хочу перебрать коллекцию $ student и умножить каждое значение на $defaultValue
и проверить, меньше ли оно или равно числу, которое я получаю из json data $jsonData->value
. если значение меньше $jsonData->value
, вернет true. Но это ничего не возвращает! это почему ? Я проверил код и обнаружил, что, когда я печатаю $carry
, он не назначается как ложный. (в соответствии с этим значение $ carry по умолчанию равно false). как это исправить?
$jsonData = json_decode($request->data);
if ($jsonData->value!==0){
foreach ($array as $key => $data){
$lectures = Lecture::where('hall_id','=',$data['id'])->get();
foreach ($lectures as $lecture){
$student = Student::where('lecture_id','=',$lecture->id)
->where('date','>=',$jsonData->dateOne)
->where('date','<=',$jsonData->dateTwo)
->get();
$defaultValue = $lecture->value;
if (!$student ->isEmpty()){
$multiplied = collect($student )
->reduce(function($carry, $item) use ($defaultValue ,$jsonData){
return $carry || $item->number * $defaultValue <=$jsonData->value;
}, false);
}
}
}
$ возврат студента
[{"id":2,"number ":10},{"id":79,"number ":1},{"id":9,"number ":4}]
$ defaultValue возвращается
2
$ jsonData-> возвращает значение
10