Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数组的变量_Php_Variable Variables - Fatal编程技术网

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.';');