• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:配列で渡されたチェックボックスの値の処理)

配列で渡されたチェックボックスの値の処理方法とは?

このQ&Aのポイント
  • 配列で渡されたチェックボックスの値の処理方法について知りたいです。
  • 受けるPHP側で、配列番号と一致した値に対する処理を行いたいです。
  • 具体的な書き方について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5292/13826)
回答No.1

$buff = array(20,30,31); foreach ($_POST['hoge'] as $key => $val) { if (in_array($key, $buff)) { // 見つかったときの処理 } }

umioyo
質問者

お礼

ありがとうございました。 うまくいきそうです^^;

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

なんか勘違いしているような? チェックボックスの値はチェックしないと送られてこないので 例示のデータでも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で変えている意味も説明が足りないと思います。

umioyo
質問者

お礼

そうですね、すいません。 値0はhiddenで渡す予定だったので、面倒だったので端折って書いてしまいました。 どうもありがとうございました。

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.2

こんな感じですかね・・・ $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>'; } } }

umioyo
質問者

お礼

ありがとうございます!

関連するQ&A