• 締切済み

二つの2次元配列をforeachで入れ子で回して、

二つの2次元配列をforeachで入れ子で回して、ユーザーNOと商品名を比較して一致すれば数量を足して新しい2次元配列に入れ、 ユーザーNOだけ一致もしくはどちらも違う場合はそのままいれるphpのプログラムを作りたいです。 arrayの中はユーザーNO,商品名,数量です $cart[0]=array(1,バナナ,3) $cart[1]=array(2,イチゴ,2) $cart[2]=array(1,すいか,3) $cart2[0]=array(1,バナナ,2) $cart2[1]=array(2,メロン,5) $cart2[1]=array(1,すいか,3) $newcart[0]=(1,バナナ,5) $newcart[1]=(1,すいか,6) $newcart[2]=(2,イチゴ,2) $newcart[3]=(2,メロン,5) どのようにプログラムしたらよろしいでしょうか?

みんなの回答

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2
すると、全ての回答が全文表示されます。
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

そのままゴリゴリと書けばいいと思います。 <?php $cart = array( array(1,'バナナ',3), array(2,'イチゴ',2), array(1,'すいか',3), ); $cart2 = array( array(1,'バナナ',2), array(2,'メロン',5), array(1,'すいか',3), ); $newcart = array(); foreach ($cart as $arr) { arr_add($arr, $newcart); } foreach ($cart2 as $arr) { arr_add($arr, $newcart); } print '<pre>'; var_dump($newcart); print '</pre>'; function arr_add($arr, &$newcart) { foreach ($newcart as $key=>$val) { if (($val[0] === $arr[0])and($val[1] === $arr[1])) { $newcart[$key][2] += $arr[2]; return; } } $newcart[] = $arr; }

すると、全ての回答が全文表示されます。

専門家に質問してみよう