2013-07-07 166 views
0

我很困惑如何使用$$来使用字符串作为变量,主要是当涉及到使用字符串引用数组索引。 考虑以下情况:变量与数组变量

$colors = array(
'r'=>"red", 
'b'=>"blue" 
); 
$vr = "colors[r]"; //I tried even this "color['r']" 
echo $$vr; // I tried even this ${$vr} 

谁能告诉,如果它是可以做到以上。 预期o/p是使用“color [r]”作为字符串的红色,然后将其用作变量。

+4

变量变量比普通数组/关联数组更复杂,功能也更少。只是不要使用它们。 – Quentin

+0

http://stackoverflow.com/questions/4179489/double-dollar-sign-php –

+0

可以有任何其他的解决方案,而不是仅仅使用普通数组/关联数组 –

回答

0

你不能直接这样做。考虑以下几点:

$varName = array_shift(explode('[', $vr)); 

foreach($$varName as $key=>$value){ 
    echo $key.": ".$value."<br />"; 
} 

这会打印出:

r: red 
b: blue 

变量变量只是第一部分(颜色)。您不能在此包含密钥。

+0

谢谢mnagel ...对不起,忘记代码标签... – Swissdude

+0

数组可以更深,到下一级,即它可能是, $颜色[ 'R'] [ '荫'。如果出现以下情况会怎么样: $ vr =“colors ['r'] ['shade']”。它的动态和阵列的深度可以是任何东西。 –

+0

然后你必须编写你自己的解析器。但在我深入研究之前:这一切的目标是什么?你为什么在做你在做什么? ;) – Swissdude