2012-08-12 3 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]을 사용해야하는지 잘 모르겠습니다.