Php 如何修复reduce方法不返回任何内容(Laravel)

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

我想遍历$student集合,将
$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);