PHP组合两个不同的变量数组时,无法在foreach循环内显示内容变量

时间:2014-08-13 17:58:19

标签: php arrays loops variables foreach

我有一个像这样的多变量,我想在foreach循环中组合两个变量:

$foo = array(4, 9, 2);

$variables_4 = array("c");

$variables_9 = array("b");

$variables_2 = array("a");

foreach($foo as $a=>$b) {

foreach($variables_{$b} as $k=>$v) {

echo $v;

}

}

在我运行上面的代码后,它显示错误"消息:未定义的变量:变量_"

有谁知道如何解决这个问题?

4 个答案:

答案 0 :(得分:1)

您可以使用Variable variables完成工作,但在这种情况下,它有点难看。

更简洁的方法是使用嵌套数组:

$foo = array(4=>array("c"),
             9=>array("b"),
             2=>array("a"));

foreach($foo as $a=>$b) {
     foreach($b as $k=>$v) {
          echo $v;
     }
}

然后你不必创建很多变量,如$variables_9

答案 1 :(得分:1)

您应该尝试使用eval(),例如:

foreach(eval('$variable_'.$b) as $k=>$v)...

答案 2 :(得分:1)

我强烈建议另一条路线(这是一个糟糕的结构)。但无论如何......

尝试连接成一个字符串然后使用

$var = 'variables_' . $b;
foreach($$var as $k=>$v) {

echo $v;

}

答案 3 :(得分:1)

这是语法错误。 您需要在括号内连接字符串:

${'variables'.$b}

查看this帖子了解更多信息。