• ベストアンサー
  • すぐに回答を!

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

  • 質問No.1571084
  • 閲覧数70
  • ありがとう数2
  • 回答数5

お礼率 8% (6/75)

for($i=0; $i<10; $i++)
{
$arr = $arr_$i
}

$arr_1から$arr_10みたいな感じで変数名を変えていきたいんですが、上記だと無理です。
どのように記述すれば大丈夫でしょうか?

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

  • 回答No.4
  • ベストアンサー

ベストアンサー率 28% (277/960)

#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件)

  • 回答No.5

ベストアンサー率 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";
 }
}
  • 回答No.3

ベストアンサー率 60% (12/20)

再びお邪魔します。

$hensu = "arr_" . $i;

としておいて、

${$hensu}[] = 100;

というような書き方ならできます。
$$hensu[] はエラーになっちゃいます。
  • 回答No.2

ベストアンサー率 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++)

ですね。
補足コメント
phptest

お礼率 8% (6/75)

ご回答ありがとうございます。
ちなみに、
for($i = 0; $i < 10; $i++)
{
$hensu = "arr_" . $i . "[]";
$$hensu = a
}

このようにはできませんよね。

$arr_1[]、$arr_2[]・・・のような感じにしたいんですが・・・
投稿日時:2005/08/10 12:50
  • 回答No.1

ベストアンサー率 28% (277/960)

配列を覚えましょう。

$arr[$i] と書けます。
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ