我在PHP嵌套foreach循環中我變了一個問題:PHP嵌套foreach循環迭代和設置變量
我的變量$計數器不重置爲1內循環完成後。我也嘗試在內部循環之後解除復位,這也沒有任何效果。我知道在PHP的foreach循環中沒有內部作用域。但是我認爲,一旦我在內部循環完成後設置了$ counter = 1,那麼下一個外部循環以及新的內部循環應該以$ counter = 1再次啓動?
<?php
$counter = 1;
foreach($loop1 as $x){
foreach($loop2 as $y){
if($counter==1){do something};
else {do something else};
$counter++;
};
$counter = 1;
}
?>
這是實際的代碼:
<?php
$i=1;
foreach ($neu as $n) {
$gcount = 1;
echo'<div> </div>';
foreach ($gesendet as $g) {
if (($n["Quelle"] ==$g["Quelle"]) || ($n["Quelle"] ==$g["Ziel"])){
if ($gcount == 1){
echo nl2br("\n");
}
else {
echo'<div id="divtoggle">' .nl2br("\n")."at ".$g['Datum']." ". htmlspecialchars($g['username']). nl2br(" wrote: \n") ;
echo "\"".htmlspecialchars($g['Inhalt']). "\"" .nl2br("\n");
echo '</div>';
}
}
$gcount++;
}
unset($gcount);
echo '</div>';
$i++;
}
?>
你怎麼知道它沒有設置爲1? – zerkms
因爲它在第一次循環和第二次循環的第二次迭代期間不執行if($ counter == 1)[做某事},我也迴應了$ counter,並且在第一次迭代時它只有1。 – user2929899
提供自己包含的一段代碼,以便我們可以自己運行並查看它。爲'$ loop1'和'$ loop2'提供靜態定義。 – zerkms