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 に答える