- ベストアンサー
変数の名前をループで
$hoge1 $hoge2 $hoge3 という変数があるとします。 そしてこの変数の中身の数のカウントを1回のループで行いたくて下のようなスクリプトを書きました。 $j=0 for($i=0; $i<3; $i++) { $j++; $aaa='$hoge' . $j; $cnt=count($aaa); print $cnt; } しかしこれだと$task1、$task2、$task3という文字列になってしまい、count関数を使っても1が出力されるだけにしかなりません。 "変数"として認識させることは可能でしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
<?php for($i=1; $i<4; $i++) { $aaa=${'hoge'.$i}; $cnt=count($aaa); print $cnt; ?> でもこんな処理するくらいなら最初から配列にするように設計し直した方がいいと思いますよ $hoge[1] $hoge[2] $hoge[3]
その他の回答 (3)
変数内の文字列を変数名として使用したい場合、 $を二つ重ねます。 $j=0 for($i=0; $i<3; $i++) { $j++; $aaa='hoge' . $j; $cnt=count($$aaa); print $cnt; } phpのマニュアルに載ってますよ。 無ければ公式サイトからダウンロードしておいたほうがいいでしょう。
- i2719
- ベストアンサー率35% (11/31)
配列の配列ということにすれば良いと思うが $hoge1=array(1,3,5,7); $hoge2=array(2,4,6); $hoge3=array(8); $hoge=array($hoge1,$hoge2,$hoge3); foreach ($hoge as $aaa){ echo count($aaa); }
- sakusaker7
- ベストアンサー率62% (800/1280)
petlでいうところのシンボリックリファレンス、PHPでは可変変数というようですが。 を使えばいいのでは? 4.1 変数 http://www.yc.musashi-tech.ac.jp/~yamada/doc/php/0401.html