以下のような配列があります。
PHP
1{ 2"id": "250", 3"name": "hoge", 4"fee": "2000", 5"fee_plus": "2000" 6}, 7{ 8"id": "250", 9"name": "hoge", 10"fee": "3000", 11"fee_plus": "1200" 12}, 13{ 14"id": "250", 15"name": "hoge", 16"fee": "2800", 17"fee_plus": "2500" 18}, 19{ 20"id": "251", 21"name": "hoge256", 22"fee": "3800", 23"fee_plus": "3000" 24}, 25{ 26"id": "251", 27"name": "hoge256", 28"fee": "2900", 29"fee_plus": "4000" 30}, 31{ 32"id": "251", 33"name": "hoge256", 34"fee": "2500", 35"fee_plus": "4200" 36}
上記の配列から、「id」を毎に「fee」の値の中で一番最小値、「fee_plus」の値の中で一番最小値を取ってきて、結果的に「id」のデータを1件にしたいです。
先に結果のイメージを書くと以下です。
PHP
1{ 2"id": "250", 3"name": "hoge", 4"fee": "2000", 5"fee_plus": "1200" 6}, 7{ 8"id": "251", 9"name": "hoge256", 10"fee": "2500", 11"fee_plus": "4200" 12},
まずは、「fee」の中で最小値を取ろうと、以下のようにしてみました。
PHP
1foreach($arr as $key => $value) { 2 foreach ($value as $key2 => $value2) { 3 if ($key2 == 'fee') { 4 $hoge[] = $value2; 5 } 6 } 7} 8echo min($hoge);
このように最小値を取って、「id」毎にマージして、この最小値を各キーの値に入れ替えるようすれば、、、と考えたのですが、この時点(上記の記述)で各id毎にというのが崩れてしまいました・・・
こういった複雑な場合の処理はどのように行うのがよいのでしょうか?
ご教授のほどよろしくお願いいたします。
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/22 23:56
退会済みユーザー
2016/06/23 05:15