我已经定义了一个数组$array[1][1][test]="hello world"
。我想通过使用变量变量获得此值。我试过这个,没有成功:
$var1="array";
$var2="[1][1]";
$var3="['test']";
echo ${$var1}{$var2}{$var3};
输出为null
。
答案 0 :(得分:0)
我不明白你的问题
如果你得到var,试试这个:
echo $array[1][1][test];
“更动态”:
$i = 1;
$x = 'test';
echo $array[$i][$i][$x];
答案 1 :(得分:0)
PHP manual并未过于彻底地涵盖变量数组索引的使用,但评论确实提到它们不像您发现的那样起作用。
但是提供了一些解决方法:
$array[1][1]['test']="hello world"
$var1="array";
$var2="[1][1]";
$var3="['test']";
$tmp=$var1.$var2.$var3;
eval('echo $'.$tmp.';');
以上结果是预期的'hello world'输出。也就是说,我不会在任何代码中使用eval()
。
Comment(来自于设计名称为dot ca,日期为2006年)也提供了可以处理带索引的变量数组的函数。