<?php
$x=0;
foreach($a as $b) {
$x++;
echo $x; // output 1 2 3 4
echo $b; // output a b c d
}
?>
<div>SOME HTML ELEMENTs</div>
<?PHP
foreach($c as $d) {
$y=0;
$y++;
echo $y; // output 1 1 1 1 (should be 1 2 3 4!!!!);
echo $d; // output e f g h
}
?>
为什么$ y不会增加?但我可以告诉循环正在工作,因为我得到正确的$ d值输出。谁能解释为什么会这样?我正在燃烧我的大脑。
答案 0 :(得分:2)
在每次迭代中,您正在重置$y=0;
,使其在回显处始终具有1
的值。所以把它移出循环:
$y=0;
foreach($c as $d) {
...
}
答案 1 :(得分:0)
<?php
$x=0;
foreach($a as $b) {
$x++;
echo $x;
echo $b;
}
?>
<div>SOME HTML ELEMENTs</div>
<?PHP
$y=0;
foreach($c as $d) {
$y++;
echo $y;
echo $d;
}
?>
答案 2 :(得分:0)
您正在重置$x
&amp;每次循环迭代都会$y
到0
。
foreach($a as $b) {
$x=0;
$x++;
…
foreach($c as $d) {
$y=0;
$y++;
…
将其更改为:
$x=0;
foreach($a as $b) {
$x++;
…
$y=0;
foreach($c as $d) {
$y++;
…