• ベストアンサー

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

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

  • PHP
  • 回答数5
  • ありがとう数2

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

  • ベストアンサー
  • 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

  • <?php $arr = [2,4,6,8,10]

    phpでこの式はどういう仕組になっているのか教えて下さい for文カウンタ変数 <?php $arr = [2,4,6,8,10]; for($i = 0; $i <= 4; $i++){ echo $arr[$i]."\n"; }

    • ベストアンサー
    • PHP
  • 関数名に変数を使いたい場合

    下のように多くのaddEventListener関数を作りたいので arr[0].addEventListener(MouseEvent.CLICK, onClick0); arr[1].addEventListener(MouseEvent.CLICK, onClick1); arr[2].addEventListener(MouseEvent.CLICK, onClick2); arr[3].addEventListener(MouseEvent.CLICK, onClick3); arr[4].addEventListener(MouseEvent.CLICK, onClick4); arr[5].addEventListener(MouseEvent.CLICK, onClick5); for文にいれて下のように処理したいのですが、 関数名に変数を使えず、困っています。 for(var i:int=0; i<6; i++){ arr[i].addEventListener(MouseEvent.CLICK, onClick i ); } 「 onClick i 」この部分は、どうやって記述すればよいのでしょうか? ご存知の方いらっしゃいましたら、どうかよろしくお願いします。

    • ベストアンサー
    • Flash
  • phpでこれはどういう仕組になっているんでしょうか

    phpでこれはどういう仕組になっているんでしょうか? echo $sumは 2+0 4+0 6+0 8+0 10+0で30ということですか? <?php $arr = [2,4,6,8,10]; $sum = 0; for($i = 0; $i <= 4; $i++){ $sum += $arr[$i]; } echo $sum."\n";

    • ベストアンサー
    • PHP
  • php 変数(変数名)の結合について。

    php 変数(変数名)の結合について。 こんばんは。 phpでホームページを作成しておりますが どうも上手く動かないのでこちらに質問させて頂きました。 変数名$testに数字を連番で付け、 $test0 = (値1,値2,値3,・・・) $test1 = (値1,値2,値3,・・・) $test2 = (値1,値2,値3,・・・) と各変数に配列を代入したいと考えています。 そこで、for文を使用し、 for($i=0; $i<10; $++) {  $test.$i = (値1,値2,値3,・・・) } と記述た所、上手く動作せずに困っております。 二次元配列での代入は可能だと思いますが $test[0] = (値1,値2,値3,・・・) $test[1] = (値1,値2,値3,・・・) $test[2] = (値1,値2,値3,・・・) for($i=0; $i<10; $++) {  $test[$i] = (値1,値2,値3,・・・) } ※ 実験してませんけど・・・。 なるべく二次元は使わないで処理したく思いますが やはり二次元配列のが合理的でしょうか・・・。 その点も踏まえ、何方かご教授頂ければ幸いです。 宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPの 「 $$ 」 ( 2つの$ ) はどういう意味でしょうか

       $aaa[$i] = $$bbb; ↑の「 $$ 」は何でしょうか? 変数名の前につける$は普通1つなのに、何故2つ付いてるんでしょうか?   

    • ベストアンサー
    • PHP
  • div要素で定義された配列変数間の値引き渡し

    div要素のid名と値を配列[id名,値]で定義して、親htmlと子iframe間で同名の変数の引き渡しを行なっています。 数が多いのでfor文で実施したいのですがうまくいきません。 間違いを正していただけませんでしょうか。 var arr = [ ["b01", b01], ["b02", b02], ["b03", b03],    ・    ・ ]; // iframeの呼び出し var doc = document.getElementsByTagName("iframe")[0].contentWindow; // iframe内div要素の値取得、親の変数に代入 for (var i = 0; i < arr.length; ++i) { arr[i][1] = doc.document.getElementById(`"${arr[i][0]}"`).innerHTML; } 意図としては上のような形にしたいのですが、これではうまくいきません。 おそらく`"${arr[i][0]}"`の部分がいけないのだと思います。 alert(`"${arr[0][0]}"`)の結果は意図どおり"b01"と出力されます。 もちろん以下であれば変数がきちんと渡ります。 var b01 = doc.document.getElementById("b01").innerHTML; var b02 = doc.document.getElementById("b02").innerHTML; var b03 = doc.document.getElementById("b03").innerHTML;    ・    ・ よろしくお願いします。

  • 変数名をプログラムで変える

    変数名$keyにある数字を一文字ずつ$w1、$w2・・・に入れていきたいと考えています。 if (isset($key)){ for($i=1;$i<strlen($key);$i++){ $w[$i]=substr($key,$i-1,1); } 変数w1、w2をfor文の中で変化させていきたいのですが、どのようにすればいいのでしょうか。 上記の$w[$i]ではだめでした。(配列になっちゃうのかな) 例えば$key=5432の場合、 $w1=5; $w2=4; $w3=3; $w4=2; としたいのです。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • SHELLの変数代入について

    変数名に変数を使うとエラーになるのですが、 変数名に変数を入れることは可能なのでしょうか? #!/bin/sh #関数の初期化 for i in 0 1 2 3 4 5 6 7 8 do kannsuu${i}=0 done #終わり OS:solaris10 よろしくお願いします

  • PHP プログラム ループ処理

    プログラム初心者です、ループ処理についてうまい解決方法が思い浮かばず相談させて頂きます。 ループ処理において、ループ内で変数を定義するのに違う名前を指定するにはどのような方法があるのでしょうか 例えばwhileの場合 $i =0; while($i<10){ $hoge = $i; $i++ } この$hogeを2順目には$hoge1、3順目には$hoge2と言うように増やしたり一定の法則に乗っ取って変数名を変更するにはどのように書けばいいのでしょうか。 どなたかご教授頂ければと存じます、宜しくお願い致します。

    • ベストアンサー
    • PHP
  • phpでハイパーリンクして値を持っていきたい

    今phpを使ってhtmlのタグを使いハイパーリンクして値を持っていきたいのですけどよくわかりません for($i;$i>=0;$i--){ echo '<a href="user.php">'.$arr[$i].'</a><br />'; echo $i; このようにプログラムは書いてます user.phpに arr[$i]の値をそれぞれ持っていきたいのですけど どのように書けばいいでしょうか?

    • ベストアンサー
    • PHP