• 締切済み

配列の値によって条件分岐がしたいんですが

イメージとしては配列で表されたチェックボックスに対して、その値に対して条件を分岐して処理させようと思うのですが、 送る側 1. {html_checkboxes name="list[]" selected=$smarty.session.list separator="<br/>" 2. options=$value} 1. $valueの中身は、 2. $value = array( 3. "1" => "朝", 4. "2" => "昼", 5. "3" => "夜" 6. ); 7. return $li_value; 8. } 条件のイメージとしては、朝をチェックしたら1なので、値が1ならば、hogeを実行。 2ならばhoge02を実行 3ならばhoge03を実行 ソースは下記のようにしてみました。 <<CODE if($_POST['list'] == "1"){ echo "hoge"; } <<CODE 期待とおり動かないです。。。 どうしたらよいでしょうか!? ご教授よろしくお願いします。

みんなの回答

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

こういうこと? <? foreach((array) $_POST['list'] as $val){ if($val==1) hoge1(); if($val==2) hoge2(); if($val==3) hoge3(); } ?>

  • x_jouet_x
  • ベストアンサー率68% (162/236)
回答No.1

この場合、$_POST['list']の型が配列になっています。 ですので、for文やforeach文の反復処理の中で条件分岐を行う必要があります。 例えば、 $values = $_POST['list']; foreach ($values as $value) { if ($value == "1") { // 1の処理を実行 } } のような感じです。

negneg0927
質問者

補足

ありがとうございます!! ただ、チェックボックスなので、複数選択の仕様でもあります。 複数選択した場合の処理として、スマートな方法ではどのようなプログラムをくんだらいいでしょうか。 ご教授お願いします。

関連するQ&A