0

我真的很想知道如何做到这一点,所以我不完全确定要问什么,但是就这样吧。

这是我到目前为止所拥有的:

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

这可能吗?

4

1 回答 1

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].

于 2012-08-12T00:42:44.467 回答