2012-08-12 63 views
0

我對如何做到這一點的想法很困惑,所以我不完全確定要問什麼,但是在這裏。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 

這可能嗎?

回答

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]