将集合中的值相乘

大家好,我有这样的东西,我想将每个对象的“数字”相乘。例如 2(第一个对象编号)x3(第二个对象编号)=6(答案应该是 6)有人知道怎么做吗?数组并不总是相同的。这里它有 2 个对象,但可以更改。


[{"id":7,"date":"2020-03-14","number":2},{"id":20,"date":"2020-03-15","number":3}]  

更新的答案(工作)


                     foreach ($studentDetail as $student){

                     $number = calendar::where('student_id','=',$student['id'])

                            ->where('date','>=',$jsonData->checkin)

                            ->where('date','<',$jsonData->checkout)

                            ->get();

                        Log::info($number );

                        $multiplied= $number ->reduce(function ($carry, $item) {

                             return $carry * $item->number;

                        }, 1);

                        Log::info($multiplied);

                        }


慕斯王
浏览 117回答 1
1回答

DIEA

您可以使用reduce()以下方法Laravel collectionreduce 方法将集合缩减为单个值,将每次迭代的结果传递给后续迭代$multiplied= $collection->reduce(function ($carry, $item) {&nbsp; return $carry * $item->number;}, 1);
打开App,查看更多内容
随时随地看视频慕课网APP