- ベストアンサー
PHPの初歩的なことですが・・・
for($i=0; $i<10; $i++) { $arr = $arr_$i } $arr_1から$arr_10みたいな感じで変数名を変えていきたいんですが、上記だと無理です。 どのように記述すれば大丈夫でしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#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)
再三お邪魔します。 $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"; } }
- haru44
- ベストアンサー率60% (12/20)
再びお邪魔します。 $hensu = "arr_" . $i; としておいて、 ${$hensu}[] = 100; というような書き方ならできます。 $$hensu[] はエラーになっちゃいます。
- haru44
- ベストアンサー率60% (12/20)
文字列を変数の名前として使用することができます。 $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++) ですね。
- ttyp03
- ベストアンサー率28% (277/960)
配列を覚えましょう。 $arr[$i] と書けます。
補足
ご回答ありがとうございます。 ちなみに、 for($i = 0; $i < 10; $i++) { $hensu = "arr_" . $i . "[]"; $$hensu = a } このようにはできませんよね。 $arr_1[]、$arr_2[]・・・のような感じにしたいんですが・・・