下記のように、味を指定して検索して、当てはまる食べ物の名前を表示するというものをつくりたいのですが、配列から検索して表示するという時に
array_filter関数を使ってみようかと思うのですが、パフォーマンス的に、又は実用性的にいかがでしょうか?
そして、array_filterのreturnで演算子($x["sweet"]==1 && $x["sour"]==1 のようなもの)を書かないといけないと思うのですが、
チェックボックスから入力されたものを $tasteに配列として入れて、そのあとどのようにarray_filterで処理すればよいのかがわかりませんでした。。
もっと良い方法がある場合は教えていただけると嬉しいですm(__)m
HTML
1<form action="/search.php" method="post"> 2 3<label><input type="checkbox" name="taste[]" value="sweet">甘い</label> 4<label><input type="checkbox" name="taste[]" value="sour">酸っぱい</label> 5<label><input type="checkbox" name="taste[]" value="bitter">苦い</label> 6 7<input type="submit" value="検索"> 8 9</form>
php
1 2var items = array( 3 { 4 "id": 1, 5 "name": "りんご", 6 "sweet": "1", 7 "sour": "0", 8 "bitter": "0", 9 }, 10 { 11 "id": 2, 12 "name": "みかん", 13 "sweet": "1", 14 "sour": "1", 15 "bitter": "0", 16 }, 17 { 18 "id": 3, 19 "name": "たまねぎ", 20 "sweet": "0", 21 "sour": "0", 22 "bitter": "1", 23 } 24); 25 26$taste = $_POST['taste']; //ここに格納された配列はどのようにarray_filterで処理することができますか? 27 28$b_items = array_filter($items,function($x){ 29 return ( 30 //ここをどうすればいいかわかりません。。 31 ); 32}); 33 34<?php foreach ($b_items as $item) : ?> 35 36<?php echo $item['name']; ?> 37 38<?php endforeach; ?> 39 40
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。