- ベストアンサー
配列で渡されたチェックボックスの値の処理方法とは?
- 配列で渡されたチェックボックスの値の処理方法について知りたいです。
- 受けるPHP側で、配列番号と一致した値に対する処理を行いたいです。
- 具体的な書き方について教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
$buff = array(20,30,31); foreach ($_POST['hoge'] as $key => $val) { if (in_array($key, $buff)) { // 見つかったときの処理 } }
その他の回答 (2)
- yambejp
- ベストアンサー率51% (3827/7415)
なんか勘違いしているような? チェックボックスの値はチェックしないと送られてこないので 例示のデータでもhoge[31]をチェックしないと共通項は得られません。 たとえばこんな感じで、各行にチェックをいれて試してみてください。 <form method="post"> 23:<input type="checkbox" name="hoge[23]" value="1"><br> 30:<input type="checkbox" name="hoge[30]" value="0"><br> 31:<input type="checkbox" name="hoge[31]" value="0"><br> 33:<input type="checkbox" name="hoge[33]" value="1"><br> <input type="submit" value="go"> </form> <?PHP $buff=array(20,30,31); $hoge_keys=isset($_POST["hoge"])?array_keys($_POST["hoge"]):array(); $vals=array_intersect($buff,$hoge_keys); print_r($vals); ?> ちなみにhogeのvalueを0や1で変えている意味も説明が足りないと思います。
お礼
そうですね、すいません。 値0はhiddenで渡す予定だったので、面倒だったので端折って書いてしまいました。 どうもありがとうございました。
- agunuz
- ベストアンサー率65% (288/438)
こんな感じですかね・・・ $buff=array(20,30,31); if (isset($_POST['hoge'])&&(is_array($_POST['hoge']))) { foreach ($_POST['hoge'] as $key=>$val) { if (in_array($key, $buff)) { echo $key . ' is ON<br>'; } } }
お礼
ありがとうございます!
お礼
ありがとうございました。 うまくいきそうです^^;