dポイントプレゼントキャンペーン実施中!

$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が出力されるだけにしかなりません。

"変数"として認識させることは可能でしょうか?

A 回答 (4件)

<?php


for($i=1; $i<4; $i++) {
$aaa=${'hoge'.$i};
$cnt=count($aaa);
print $cnt;
?>
でもこんな処理するくらいなら最初から配列にするように設計し直した方がいいと思いますよ
$hoge[1]
$hoge[2]
$hoge[3]
    • good
    • 0

変数内の文字列を変数名として使用したい場合、


$を二つ重ねます。

$j=0
for($i=0; $i<3; $i++) {
$j++;
$aaa='hoge' . $j;
$cnt=count($$aaa);
print $cnt;
}

phpのマニュアルに載ってますよ。
無ければ公式サイトからダウンロードしておいたほうがいいでしょう。
    • good
    • 0

配列の配列ということにすれば良いと思うが


$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);
}
    • good
    • 0

petlでいうところのシンボリックリファレンス、PHPでは可変変数というようですが。


を使えばいいのでは?

4.1 変数
http://www.yc.musashi-tech.ac.jp/~yamada/doc/php …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!