- 締切済み
二つの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) どのようにプログラムしたらよろしいでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- shimix
- ベストアンサー率54% (865/1590)
- shimix
- ベストアンサー率54% (865/1590)
そのままゴリゴリと書けばいいと思います。 <?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; }