php - 如何在 laravel 中访问和添加数组对象?
问题描述
$loanAmountbyMonth = Loan::select('date_release','amount_granted')
->where('invalid',false)
->where('transaction_year', $transyear)
->get()
->groupBy(function($date) {
return Carbon::parse($date->date_release)->format('m'); // grouping by months
});
$loanmcount2 = [];
$loanArr2 = [];
foreach ($loanAmountbyMonth as $key => $value) {
$loanmcount2[(int)$key] = $value;
}
return view('src/modules-crud',compact('loanmcount2'));
输出:
string(471) "{"9":[{"date_release":"2021-09-21","amount_granted":"10000"}],"5":[{"date_release":"2021-05-23","amount_granted":"10000"},{"date_release":"2021-05-23","amount_granted":"20000"}],"6":[{"date_release":"2021-06-17","amount_granted":"10000"}],"7":[{"date_release":"2021-07-18","amount_granted":"15000"},{"date_release":"2021-07-18","amount_granted":"50000"},{"date_release":"2021-07-18","amount_granted":"14000"}],"8":[{"date_release":"2021-08-22","amount_granted":"10000"}]}"
我想要的输出:
string(61) "{"9":"10000","5":"30000","6":"10000","7":"79000","8":"10000"}"
我想添加amount_granted
下,"7":[{"date_release":"2021-07-18","amount_granted":"15000"},{"date_release":"2021-07-18","amount_granted":"50000"},{"date_release":"2021-07-18","amount_granted":"14000"}]
但我只能访问第一个数组对象值,每次使用时授予的数量等于 15,000 $value[0]['amount_granted]
。如果我使用$value[1]['amount_granted']
它说未定义的偏移量 1。我如何将键 7 中授予的金额加在一起?谢谢你。
解决方案
为此,您将需要 2 个嵌套循环。遍历特定月份的所有金额值并将其相加,然后将其添加到结果数组中。
片段:
foreach($loanAmountbyMonth as $key => $value){
$sum = 0;
foreach($value as $key2 => $val){
$sum += $val['amount_granted'];
}
$loanmcount2[(int)$key] = $sum;
}
较短的版本:
foreach ($loanAmountbyMonth as $key => $value) {
$loanmcount2[(int)$key] = array_sum(array_column($value, 'amount_granted'));
}
推荐阅读
- php - Laravel 集成测试:如何断言一个 URL 已被调用,但另一个 URL 没有
- rabbitmq - RabbitMQ 中的 basicNack 和 basicReject
- xpath - XPATH 选择第二项(不是子项)
- python - 如何从一组稀疏矩阵构建训练数据
- java - 如何在 Eclipse IDE 中的内部类上使用 @UtilityClass lombok 注释
- selenium-chromedriver - 如何在空手道中使用 chromedriver 获得隐身模型
- javascript - 相关下拉列表 - 面积计算单位
- laravel - crontab 并没有真正开始计划
- android - 通过房间向数据库插入数据时崩溃:原因:android.database.sqlite.SQLiteConstraintException:UNIQUE 约束失败
- c# - 使用 C# 的 Windows 窗体应用程序中的折线图问题