• ベストアンサー

PHPの初歩的なことですが・・・

for($i=0; $i<10; $i++) { $arr = $arr_$i } $arr_1から$arr_10みたいな感じで変数名を変えていきたいんですが、上記だと無理です。 どのように記述すれば大丈夫でしょうか?

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

  • ベストアンサー
  • ttyp03
  • ベストアンサー率28% (277/960)
回答No.4

#1です。 #2と#3で一生懸命やろうとしていますが、そのやり方はお勧めしません。 しかも初歩の段階でそういう使い方をすると今後汚いプログラムしか書けなくなりますよ。 今回の場合、$arr_1 から $arr_10 と決まっているのだから、配列で各値をセット。 $hensu[0] = 10; $hensu[1] = 20;  :  : 使うときは、 for($i=0; $i<10; $i++) {  $arr = $hensu[$i] } のようにするべきです。 例えば、今回のように $arr_1 から $arr_10 と規則的な変数じゃないときは、#2、#3のようなやり方も一つの手ではありますが、わかりづらいプログラムをわざわざ書く人は少ないですね。

その他の回答 (4)

  • haru44
  • ベストアンサー率60% (12/20)
回答No.5

再三お邪魔します。 $arr_1[]、$arr_2[]、$arr_3[]、$arr_4[]、$arr_5[]、$arr_6[]、$arr_7[]、$arr_8[]、$arr_9[]、$arr_10[] ということであれば、可変変数ではなくて2次元配列の出番かもしれませんね。 for($i = 0; $i < 10; $i++){  for($j = 0; $j < 10; $j++){   $arr[$i][$j] = "テストデータ $i $j";  } }

参考URL:
http://takaq1.plala.jp/freebsd/renkei/php/php_bunpou.htm
  • haru44
  • ベストアンサー率60% (12/20)
回答No.3

再びお邪魔します。 $hensu = "arr_" . $i; としておいて、 ${$hensu}[] = 100; というような書き方ならできます。 $$hensu[] はエラーになっちゃいます。

  • haru44
  • ベストアンサー率60% (12/20)
回答No.2

文字列を変数の名前として使用することができます。 $hensu = "arr_0"; とやっておいて、 ${$hensu} または $$hensu を参照すると $arr_0 を参照できます。これを「可変変数」といいます。 例文は、こんな風に書けます。 for($i = 0; $i < 10; $i++) {  $hensu = "arr_" . $i;  $arr = $$hensu; } あっ $arr_1 から $arr_10 ということは for($i = 1; $i <= 10; $i++) ですね。

参考URL:
http://php.s3.to/man/language.variables.variable.html
phptest
質問者

補足

ご回答ありがとうございます。 ちなみに、 for($i = 0; $i < 10; $i++) { $hensu = "arr_" . $i . "[]"; $$hensu = a } このようにはできませんよね。 $arr_1[]、$arr_2[]・・・のような感じにしたいんですが・・・

  • ttyp03
  • ベストアンサー率28% (277/960)
回答No.1

配列を覚えましょう。 $arr[$i] と書けます。

関連するQ&A

専門家に質問してみよう