数组$$ foo的第一个元素

时间:2011-09-01 19:02:01

标签: php arrays

我遇到了这个问题。我有一堆数组决定运行时哪一个我想用双'$'。

因此,如果$foo'bar',我会使用$bar获取数组$$foo

这很好但是如何获得$ bar的第一个元素? $ bar [0]就是这样,但$$foo[0]根本不提供任何输出。

任何人都可以帮助我吗?

(我知道这是一个非常糟糕的风格,但代码已经由其他人完成了,我必须在这里和那里扩展它。我不打算重写所有的代码结构; - )

4 个答案:

答案 0 :(得分:7)

在内部$foo周围使用大括号:

echo ${$foo}[0];

当变量扩展中的子变量更复杂时,您可以这样做:

$array1 = array('a');
$array2 = array('b');
$array3 = array('c');

// writes 'abc'
for ($i = 1; $i <= 3; ++$i)
  echo ${'array' . $i}[0];

答案 1 :(得分:3)

请不要这样做。 Variable-variables 总是是一个坏主意。有更好的方法来解决问题(如数组)。使用变量变量会使代码更模糊,更难理解。更不用说它可能带来的潜在安全影响。只要避免它们,从长远来看它会更好......

请注意,我只谈论变量变量,而不是变量对象成员和方法($foo->$bar$foo->$method())...我一直使用它们(尽管这有一些缺点)

答案 2 :(得分:2)

  

我遇到了麻烦

确实你是。

  

我有一堆数组

那是你的问题 数组应该是ONE。嵌套的。
所以,你只需要

$data[$foo][0]

答案 3 :(得分:0)

$var = $$foo;
echo $var[0]; // do whatever you want with that