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

当组合两个不同的变量数组时,PHP无法在foreach循环中显示内容变量,php,arrays,loops,variables,foreach,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; } } 在我运行上述代码后,它会显示错误“消息:未定义

我有一个这样的多变量,我想在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;

}

}
在我运行上述代码后,它会显示错误“消息:未定义变量:变量”

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

你可以用它来完成工作,但在这种情况下,它有点难看

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

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

foreach($foo as $a=>$b) {
     foreach($b as $k=>$v) {
          echo $v;
     }
}
这样你就不必创建很多变量,比如
$variables\u9

,你可以用它们来完成工作,但在这种情况下,它有点难看

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

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

foreach($foo as $a=>$b) {
     foreach($b as $k=>$v) {
          echo $v;
     }
}
这样您就不必创建很多变量,比如
$variables\u 9

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

foreach(eval('$variable_'.$b) as $k=>$v)...
您应该尝试使用eval(),例如:

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

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

尝试连接成字符串,然后使用该字符串

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

echo $v;

}

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

尝试连接成字符串,然后使用该字符串

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

echo $v;

}
这是一个语法错误。 您需要将括号内的字符串连接起来:

${'variables'.$b}
查看帖子了解更多信息。

这是一个语法错误。 您需要将括号内的字符串连接起来:

${'variables'.$b}
更多信息,请查看帖子