Php 如何修复reduce方法不返回任何内容(Laravel)
我想遍历$student集合,将Php 如何修复reduce方法不返回任何内容(Laravel),php,arrays,laravel,reduce,Php,Arrays,Laravel,Reduce,我想遍历$student集合,将$defaultValue中的每个值相乘,并检查它是否小于或等于我从json数据$jsonData->value中获得的数字。如果任何值小于$jsonData->value,将返回true。但它什么也不退!为什么呢?我检查了代码,发现当我打印$carry时,它没有被指定为false。(根据这一点,$carry的默认值为false)。如何修复它 $jsonData = json_decode($request->data); if ($jsonData-&g
$defaultValue
中的每个值相乘,并检查它是否小于或等于我从json数据$jsonData->value
中获得的数字。如果任何值小于$jsonData->value
,将返回true。但它什么也不退!为什么呢?我检查了代码,发现当我打印$carry
时,它没有被指定为false。(根据这一点,$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);
}
}
}
$defaultValue reurns
2
$jsonData->返回值
10
试试这个
$carry || (($item->number * $defaultValue) <=$jsonData->value);
$carry | |($item->number*$defaultValue)值);
您是否尝试过函数($carry,$item)使用($defaultValue)
我尝试过,但仍然有相同的错误。不归还任何东西
$carry || (($item->number * $defaultValue) <=$jsonData->value);