• ベストアンサー

変数が多い場合の処理について

test1.phpで入力画面を作成し、 test2.phpでtest1.phpで入力された項目の表示をしたいと考えています。 test1.phpで入力項目が20個あり、 変数名が $insert_data1, $insert_data2, ....$insert_data30 と30個ほどあります。 test2.phpでこの30個の入力データを表示させる場合、 print $insert_data1; print $insert_data2; ・ ・ ・ print $insert_data30; とするとちょっと長いので for文とか、while文とか使用して、簡潔に作成したい と考えています。 また変数は今は30個ですが、増えたり、減ったりする かもしれないので、できれば動的に対応するもので あってほしいと考えています。 いいたいことがうまく伝わらないのですが、 ↓みたいにしたいということです。(これはできないとおもいますが・・・) for($cnt=0;$cnt<count($insert_data***);$cnt++){ print $insert_data.$cnt; } です。アドバイスお願いしますm(_ _)m

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

  • ベストアンサー
  • sisya
  • ベストアンサー率39% (97/244)
回答No.2

入力項目が20個なのに30個値がある…と言うのは 隠し要素があるって事でしょうか… 一応可変変数を使用すれば実現可能です。 例: for($cnt = 0; $cnt < count($_REQUEST); $cnt++){ print ${"insert_data".$cnt} } もし配列に出来なくてやむなく今回の処理を行っているのでしたら、 <input type="text" name="insert_data[]" value="a"> <input type="text" name="insert_data[]" value="b"> と言う感じでname要素の末尾に[]をつけた要素にすれば 配列の形でデータが格納されます。

TOKIO2003
質問者

お礼

すみません、質問がわかりづらくて。。。 20個や30個などに変化するのはただ、入力項目が 増えたり減ったりするということです。 今、配列に変更した結果うまく値を得ることができました。 ありがとうございました。

その他の回答 (1)

  • yatokesa
  • ベストアンサー率40% (201/496)
回答No.1

まず、 $insert_data1 という定義を $insert_data[1]のように配列にすることは出来ないのでしょうか?これが最もわかりやすくて簡単な方法だと思います。 PHPでは可変変数という方法が使えます。 > print $insert_data.$cnt; $var = "insert_data{$cnt}"; print $$var; とすると出力されると思います...たぶん... #未テスト

参考URL:
http://www.php.net/manual/ja/language.variables.variable.php
TOKIO2003
質問者

お礼

返信ありがとうございました。 配列に変更して値を取得することができました。 よかったです。 どうもありがとうございました。

関連するQ&A