Php 数组的变量
我已经定义了一个数组Php 数组的变量,php,variable-variables,Php,Variable Variables,我已经定义了一个数组$array[1][1][test]=“hello world”。我想通过使用变量得到这个值。我尝试过这一点,但没有成功: $var1="array"; $var2="[1][1]"; $var3="['test']"; echo ${$var1}{$var2}{$var3}; 输出为空我不明白你的问题 如果您得到var,请尝试以下方法: echo $array[1][1][test]; “更动态”: PHP并没有太全面地介绍变量数组索引的使用,但评论确实提到它们并不像
$array[1][1][test]=“hello world”
。我想通过使用变量得到这个值。我尝试过这一点,但没有成功:
$var1="array";
$var2="[1][1]";
$var3="['test']";
echo ${$var1}{$var2}{$var3};
输出为空我不明白你的问题 如果您得到var,请尝试以下方法:
echo $array[1][1][test];
“更动态”:
PHP并没有太全面地介绍变量数组索引的使用,但评论确实提到它们并不像您所发现的那样有效
不过,提供了一些变通方法:
$array[1][1]['test']="hello world"
$var1="array";
$var2="[1][1]";
$var3="['test']";
$tmp=$var1.$var2.$var3;
eval('echo $'.$tmp.';');
上述结果产生了预期的“hello world”输出。也就是说,我不会在任何代码中使用eval()
(作者nick于2006年在customdesigns dot ca出版)在手册页上还提供了可以处理带索引的变量数组的函数。看,我认为你不能将标记放入这个概念中。因此,你声明了一个多维数组,你想显示值吗?如果你真的想这样做,您可以使用
echo eval(“return\$$var1$var2$var3;”)
。不过,我强烈建议不要这样做。我只知道最终会有人使用eval()
。在考虑使用之前,请先阅读本手册。我敢打赌,如果你退后一步,看看你的需求,你可以想出一些不需要使用eval()
@riggsfully就能奏效的东西,是的,eval()
有点像goto
。当你不知道自己在做什么,当你知道使用它时,你知道你并不真的需要它。OP要求使用变量解决方案。请在考虑使用它之前阅读。nicks评论的链接不错。比eval()好得多的主意
$array[1][1]['test']="hello world"
$var1="array";
$var2="[1][1]";
$var3="['test']";
$tmp=$var1.$var2.$var3;
eval('echo $'.$tmp.';');