php - 将集合中的值相乘
问题描述
大家好,我有这样的东西,我想将每个对象的“数字”相乘。例如 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);
}
解决方案
您可以使用reduce()
以下方法Laravel collection
reduce 方法将集合缩减为单个值,将每次迭代的结果传递给后续迭代
$multiplied= $collection->reduce(function ($carry, $item) {
return $carry * $item->number;
}, 1);
推荐阅读
- statistics - Azure Synapse:无法删除列,因为它具有相关统计信息
- google-analytics - 未从 Angular 8 项目记录的 Google Analytics 事件值
- prolog - 一个函数的输出作为 Prolog 中另一个函数的输入参数
- c++ - 如何在 arduino 中的 TFT 上显示静态地图
- node.js - 温斯顿在日志之间添加换行符
- javascript - 我怎样才能把这个 JavaScript 三元写得更短?
- python - 为什么 OpenCV 没有安装在 Anaconda 的基础(根)环境中?
- flutter - 颤振更改密码
- python-3.x - 无法安装 biobert
- r - 这是什么语法,我该如何使用它?