2013-11-23 78 views
1

我知道我可以动态调用一个变量是这样的:动态变量数组名

$var = 'name'; 
$name = 'hello'; 
echo(${$var}); 

但我怎么能解决以同样的方式数组(但不只是一个属性一样是$ var [$ i]) :

$var = 'arrayname[\'Subsections\'][\'Party\'][\'Description\']'; 
var_dump(${$var}); 

谢谢你在前进, 问候, 斯特凡

+0

function getArrayPath($arr,$path) { foreach($path as $item) {$arr = $arr[$item];} return $arr; } 

然后,您可以访问这个样子? – Kermit

回答

2

你不应该使用变量变量反正。使用数组。

在这种情况下,你可以有一个辅助功能:使用`foreach`循环

$var = ["Subsections","Party","Description"]; 
$data = getArrayPath($arrayname,$var); 
+0

谢谢 - 为我工作。我不喜欢那么多的开销,仅仅是因为我想动态地调用一个变量,但是很好地调用它。 只是两个方面的说明 - 它花了我不多,但仍然不支持所有PHP版本的[]数组语法(我刚刚意识到这一点,因为我本周早些时候遇到过这种情况),所以我不得不使用旧的数组() 句法。我想你想写$ arr [$ item]而不是$ arr [$ path] ....仅供参考。 :-) – Stefan