关注unsolved question,
我正在尝试计算如何使用foreach
我该如何制作这种代码:
$m1="mbob";
$m2="mdan";
$m3="mbill";
$a = array('bob', 'dan', 'bill');
$i = 1; /* for illustrative purposes only */
foreach ($a as $v) {
echo "\$a[$i] => $v.\n";
echo $m[$i];
$i++;
}
输出此结果:
$a[1] => bob.
mbob
$a[2] => dan.
mdan
$a[3] => bill.
mbill
我收到了错误:
未定义的变量:m
但我正在尝试输出m1,m2,m3
变量,而不仅仅是m
。
答案 0 :(得分:1)
这是我从未做过的事情,但你可以试着试一试:
echo $('m' . $i);
这类似于函数调用,您可以通过字符串动态构造函数名称,但我不知道它是否也适用于局部变量。
答案 1 :(得分:1)
这是有效的代码,但我不推荐它。我建议您只将$m
值存储在数组中。
<?php
$m1="mbob";
$m2="mdan";
$m3="mbill";
$array = array('bob', 'dan', 'bill');
$i = 1;
foreach ($array as $value) {
echo "\$a[$i] => $value.\n";
echo '<br>';
echo ${"m".$i};
echo '<br>';
$i++;
}
?>
答案 2 :(得分:0)
在您的代码中,$ m不是数组。有一种方法可以创建变量变量名称,这似乎是您尝试做的,但更简单的是创建$ m作为数组:
$m =array("mbob","mdan","mbill");
$a = array('bob', 'dan', 'bill');
$i = 1; /* for illustrative purposes only */
foreach ($a as $v) {
echo "\$a[$i] => $v.\n";
echo $m[$i];
$i++;
}