- ベストアンサー
連想配列の操作がうまくいかない
- PHPの連想配列を操作する際にシンタックスエラーが発生しています。特に、チェックボックスの選択状態に応じて「or」または「and」の値を連想配列に代入する処理がうまく機能していません。
- 具体的には、チェックボックスが選択されている場合には「or」を、選択されていない場合には「and」を代入するようにしていますが、その処理の一部にシンタックスエラーが出ています。
- 解決方法としては、ループ処理の中で変数の代入を行う箇所で問題が発生している可能性があります。変数「$and」に値を代入する際の文法を見直し、適切な代入方法を採用する必要があります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
若干、つめが甘い。 たぶんこんな感じがしたいんだと。 <?PHP if(isset($_REQUEST["cb"])){ $cb = $_REQUEST["cb"]; $ands = array_fill(0,8,"or"); foreach($ands as $key=> &$and){ if(isset($cb[$key])){ $and="and"; } } print_r($ands); } echo <<< EOT <form> <input type="checkbox" name="cb[0]" value="1">title0<br> <input type="checkbox" name="cb[1]" value="1">title1<br> <input type="checkbox" name="cb[2]" value="1">title2<br> <input type="checkbox" name="cb[3]" value="1">title3<br> <input type="checkbox" name="cb[4]" value="1">title4<br> <input type="checkbox" name="cb[5]" value="1">title5<br> <input type="checkbox" name="cb[6]" value="1">title6<br> <input type="checkbox" name="cb[7]" value="1">title7<br> <input type="checkbox" name="cb[8]" value="1">title8<br> <input type="submit" value="go"> </form> EOT; ?>
その他の回答 (2)
- tany180sx
- ベストアンサー率63% (239/379)
セミコロンがコロンだというオチでは... foreachブロックの中もちょっと意味が分からないのでよく考えた方がいいです。
お礼
ご回答ありがとうございます。 まずすべてにandを代入してから該当部分だけorに置き換えようと考えていました。
シンタックスエラーの中身が何より大事なので、 提示して下さい。 また、エラーで表示される行数はあくまで目安くらいに思っておかないと エラーが永久に見つからないこともあります。
お礼
ご回答ありがとうございます。 >シンタックスエラーの中身が何より大事なので、 提示して下さい。 わかりました。エラーが出た際は必ず明示します。
お礼
おおお…うまくできました! 本当にありがとうございます