[PHP-users 31273] 配列の可変変数

taira taira @ blessroad.co.jp
2007年 1月 18日 (木) 21:57:01 JST


タイラと申します。

可変変数を配列で使用する場合の方法ですが、

$a=array('key'=>'value');
$b='key';
$c=$a[$b];
print $c;

/* 出力:
value
*/

となりますが、これを以下のようにブラケットも含めて変数で指定するにはどの
ような方法があるでしょうか。

$b='[key]';
$c=$a{$b};
print $c;

/* 出力:なにも出力されない */

これだと、 [key] がブラケットも含めた文字列となり、添え字として解釈さ
れてしまうため、$a[[key]] の値が$cに代入されます。



実際には多次元配列(次元数は変動する)で以下のような使い方をしたいのです。
望んでいる動作は
$data[a][b][c]="value";
と同様のことです。


$key='[a][b][c]';
$data{$key} = "value";



散々色々試して、過去ログなどもあちこちあたったのですが良い方法がみつかり
ません。

-- 
taira <taira @ blessroad.co.jp>



PHP-users メーリングリストの案内