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

配列の値を可変変数を用いて取得する方法について

下記のようなソースがあるのですが、$tmp1_1zのような変数の場合、可変変数を用い取得する事は出来たのですが、$hairetsu["tmp2_1z"]のような配列の場合、可変変数を用い取得する事は出来ませんでした。

どちらの例の場合も、$varの中には意図した文字が取得できていると思うのですが、$$varの結果が異なり、どのように記述すれば配列の場合も可変変数の値が取得できるか分からなかった為、アドバイスいただける方がいらっしゃいましたら、ご教示の程よろしくお願いします。


【ソース】
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>title</title>
</head>
<body>
<?php
$tmp1_1z = 1;
$hairetsu["tmp2_1z"] = 2;
$i = 1;

$var = 'tmp1_' . $i . 'z';
echo "<p>var=" . $var . "</p>";
echo $tmp1_1z;
// 下記は値が取得できます。
echo "<p>\$var=" . $$var . "</p>";

$var = 'hairetsu["tmp2_' . $i . 'z"]';
echo "<p>var=" . $var . "</p>";
echo $hairetsu["tmp2_1z"];
// 下記は値が取得できません。
echo "<p>\$var=" . $$var . "</p>";
?>
</body>
</html>

以上、よろしくお願いします。

A 回答 (2件)

配列の添字だけ変数化するのなら



$var = 'tmp2_' . $i . 'z';
echo "<p>var=" . $var . "</p>";
echo $hairetsu["tmp2_1z"];
// 下記は値が取得できません。
echo "<p>\$var=" . $hairetsu[$var] . "</p>";

でいけますね。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
ご教示いただいたソースで意図した動作となりました。

このたびはどうもありがとうございました。
以上、よろしくお願いします。

お礼日時:2011/06/28 00:13

こんなのとか:



$hairetsu[ 'tmp2_1z' ] = 2;

$avar = 'hairetsu';
$a = ${$avar};

echo $a[ 'tmp2_1z' ], "\n";

参考URL:http://www.ideone.com/OYgHb
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
参考URLに記載していただいたソースで意図した動作となりました。

このたびはどうもありがとうございました。
以上、よろしくお願いします。

お礼日時:2011/06/28 00:17

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