【发布时间】:2021-03-08 02:04:34
【问题描述】:
我有一组需要处理才能生成报告的数据
以下是提供的数据样本
$arrival_data = [
[
"arrival_date" => "09-Dec-2020",
"total_amount" => "10",
"total_traveller" => 6
],
[
"arrival_date" => "09-Dec-2020",
"total_amount" => "20",
"total_traveller" => 6
],
[
"arrival_date" => "10-Dec-2020",
"total_amount" => "40",
"total_traveller" => 3
]
];
我想处理上面的数据,以便按“arrival_date”分组并对数据求和,以便数据如下所示
$arrival_data = [
[
"arrival_date" => "09-Dec-2020",
"total_amount" => "30", // sum of 10 + 20
"total_traveller" => 6
],
[
"arrival_date" => "10-Dec-2020",
"total_amount" => "40",
"total_traveller" => 3
]
];
我还没有设法使用 laravel 集合生成预期的输出,我能够得到的最接近如下
{
"09-Dec-2020": 30,
"10-Dec-2020": 40
}
使用下面的代码
$collection = collect($arrival_data);
$num = $collection->groupBy('arrival_date')->map(function ($row) {
return $row->sum('total_amount');
});
return $num->toArray();
让 laravel 集合能够编写代码以按预期生成输出,或者需要通过循环数组和处理来使用不同的方法。
谢谢
【问题讨论】:
标签: php arrays laravel laravel-collection