0

次のような配列があります(これは$ data変数のprint_rです)

配列
((
    [0]=>配列
        ((
            [quan] => 1
            [prod_key] => 6f2e8858b8333afaeec8cd51be30ba6a
            [タイトル]=>ブルームハンドル-6"x12.5"
            [合計]=>11.00
            [重量]=>0.25
            [画像]=>thumb_37658989fcd29e9.jpg
        )。

    [1]=>配列
        ((
            [quan] => 1
            [prod_key] => 6f2e8858b8333afaeec8cd51be30ba6a
            [タイトル]=>ブルームハンドル-6"x12.5"
            [合計]=>11.00
            [重量]=>0.25
            [画像]=>thumb_37658989fcd29e9.jpg
        )。
    [2]=>配列
        ((
            [quan] => 1
            [prod_key] => of2ef85vb8333afaeec8cd51be30jq7i
            [タイトル]=>見る
            [合計]=>65.00
            [重量]=>0.15
            [画像]=>thumb_37658989fcd29e9.jpg
        )。
)。

私がやろうとしているのは、配列をループして、同じprod_keyを持つアイテムを1つのアイテムに結合し、合計、数量、および重量を更新して、上記の例が次のようになるようにすることです。

配列
((
    [0]=>配列
        ((
            [quan] => 2
            [prod_key] => 6f2e8858b8333afaeec8cd51be30ba6a
            [タイトル]=>ブルームハンドル-6"x12.5"
            [合計]=>22.00
            [重量]=>0.50
            [画像]=>thumb_37658989fcd29e9.jpg
        )。
    [1]=>配列
        ((
            [quan] => 1
            [prod_key] => of2ef85vb8333afaeec8cd51be30jq7i
            [タイトル]=>見る
            [合計]=>65.00
            [重量]=>0.15
            [画像]=>thumb_37658989fcd29e9.jpg
        )。
)。
4

1 に答える 1

2

新しい配列を作成し、プロダクトキーを配列インデックスとして使用します。次に、エントリを簡単に追加または更新できます

$result = array();
foreach ($data as $v) {
    if (!isset($result[$v['prod_key']])) {
        $result[$v['prod_key']] = $v;
    } else {
    $result[$v['prod_key']]['quan'] += $v['quan'];
    $result[$v['prod_key']]['total'] += $v['total'];
    $result[$v['prod_key']]['weight'] += $v['weight'];
        //etc...
    }
}
于 2012-08-20T16:09:24.073 に答える