[PHP-users 27552] 配列の添字部分を角括弧を含めて変数指定

luler_works@yahoo.co.jp luler_works @ yahoo.co.jp
2005年 11月 21日 (月) 13:58:19 JST


お世話になります。札幌の山口と申します。

配列の添字を変数で指定するには

例)
 $hairetsu=array('key'=>'value');
 $a='key';
 echo $hairetsu['key'].'='.$hairetsu[$a];

結果)
 value=value

でOKですが

配列の添字部分を、角括弧も含めて変数で指定したいと考えております。
そこでevalを使用し、下記のようにしてみましたが
エラーが表示され、期待通りの動作になりません。
どのようにすればよろしいか、ご教授お願い申し上げます。

例)
 $hairetsu=array('key'=>'value');
 $a="['key']";
 $b='$hairetsu'.$a;
 eval("\$b=\"$b\";");
 echo $hairetsu['key'].'='.$b;

結果)
 Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE,
 expecting T_STRING or T_VARIABLE or T_NUM_STRING in
 (ソースのアドレス) : eval()'d code on line 1
 value=$hairetsu['key']

期待する動作結果)
 value=value






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