我从一个数据库查询中获得了这个按日期分组的数组结构(见下文),我希望通过将quantity
乘以transamount
来计算每个组的总数。
这就是我到目前为止所知道的:
array (size=3)
'2017-7-03' =>
array (size=3)
0 =>
array (size=4)
'paydate' => string '2017-7-03' (length=9)
'tariff' => string 'batch1' (length=31)
'quantity' => string '1.0000' (length=6)
'transamount' => string '20.0000' (length=7)
1 =>
array (size=4)
'paydate' => string '2017-7-03' (length=9)
'tariff' => string 'Eye Test' (length=8)
'quantity' => string '1.0000' (length=6)
'transamount' => string '5.0000' (length=6)
2 =>
array (size=4)
'paydate' => string '2017-7-03' (length=9)
'tariff' => string 'hub photos' (length=16)
'quantity' => string '1.0000' (length=6)
'transamount' => string '82.0000' (length=7)
'2017-7-04' =>
array (size=9)
0 =>
array (size=4)
'paydate' => string '2017-7-04' (length=9)
'tariff' => string ' Register' (length=21)
'quantity' => string '1.0000' (length=6)
'transamount' => string '20.0000' (length=7)
其目的是获得按日期分组的所有事务的总数。
发布于 2017-11-20 22:23:06
这可能不起作用,因为我不确定您是否需要使用日期作为关键字来访问事务...但是类似这样的代码会将一个元素添加到每个具有合计的数组项中。
// loop through the arrays sorted by date
foreach ($groups as $group)
{
$total = 0;
// loop through each transaction
foreach ($group as $transaction)
{
// Add to the total for each purchase group
$total += $transaction->quantity * $transaction->transamount;
}
// put the total into the group array
$group->total = $total
}
这样,您应该会得到类似这样的结果
'total' => (calculated value),
'2017-7-03' =>
array (size=3)
0 =>
array (size=4)
'paydate' => string '2017-7-03' (length=9)
'tariff' => string 'batch1' (length=31)
'quantity' => string '1.0000' (length=6)
'transamount' => string '20.0000' (length=7)
1 =>
array (size=4)
'paydate' => string '2017-7-03' (length=9)
'tariff' => string 'Eye Test' (length=8)
'quantity' => string '1.0000' (length=6)
'transamount' => string '5.0000' (length=6)
2 =>
array (size=4)
'paydate' => string '2017-7-03' (length=9)
'tariff' => string 'hub photos' (length=16)
'quantity' => string '1.0000' (length=6)
'transamount' => string '82.0000' (length=7)
'2017-7-04' =>
https://stackoverflow.com/questions/47401244
复制