PHP分组/总计
问题描述:
我对如何做到这一点的想法很困惑,所以我不完全确定要问什么,但是在这里。PHP分组/总计
这是我到目前为止有:
foreach($order as $key => $ord){
$attribute = explode(":", $order[$key]);
echo sku($attribute[0],$attribute[2],$attribute[1],$attribute[4])." - ".$attribute[3].";
}
这样做的输出会像
SKU - QUANTITY
1001-01 - 5
1001-02 - 3
1001-01 - 1
1045-02 - 1
1001-02 - 8
1001-01 - 3
1003-01 - 4
我需要共计这些的一种方式,使其显示
SKU - QUANTITY
1001-01 - 9
1001-02 - 11
1003-01 - 4
1045-02 - 1
这可能吗?
答
是的,这是可能的。只要使用与SKU数组作为重点:
$totals = array();
foreach($order as $ord){
$attribute = explode(":", $ord);
$sku = sku($attribute[0],$attribute[2],$attribute[1],$attribute[4])
$amt = $attribute[3];
if (isset($totals[$sku])) {
$totals[$sku] += $amt;
} else {
$totals[$sku] = $amt;
}
}
在一个侧面说明:explode
被要求做这样的事情往往意味着数据不被存储在正确的格式。
另外,$order[$key]
和$ord
完全一样,所以我不确定你为什么使用$order[$key]
。