我真的不知道如何做到这一点的想法,所以我不确定要求什么,但是这里有。
这是我到目前为止所做的:
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
这可能吗?
答案 0 :(得分: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]
的原因。