我有一个像这样的多个变量,我想在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;
}
}
在我运行上面的代码后,它显示错误"Message: Undefined variable: variables_"
有人知道如何解决这个问题吗?
您可以使用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
那样创建很多变量
您应该尝试使用eval(),例如:
foreach(eval('$variable_'.$b) as $k=>$v)...
我强烈建议另一条路线(这是一个糟糕的结构)。但无论如何…
尝试连接成一个字符串,然后使用
$var = 'variables_' . $b;
foreach($$var as $k=>$v) {
echo $v;
}
语法错误。您需要连接括号内的字符串:
${'variables'.$b}
>