2015-01-11 72 views
0

我在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++; 
} 

?> 
+0

你怎麼知道它沒有設置爲1? – zerkms

+0

因爲它在第一次循環和第二次循環的第二次迭代期間不執行if($ counter == 1)[做某事},我也迴應了$ counter,並且在第一次迭代時它只有1。 – user2929899

+0

提供自己包含的一段代碼,以便我們可以自己運行並查看它。爲'$ loop1'和'$ loop2'提供靜態定義。 – zerkms

回答

0

嘗試。

<?php 
foreach($loop1 as $x){ 
    $counter = 1; 
    foreach($loop2 as $y){ 
     if($counter==1){do something}; 
     else {do something else};   
     $counter++; 
    } 
}  
?> 
+0

我試過了,沒有成功 – user2929899

+0

是發生了一些遞歸,它看起來像沒有重置。你可以發佈功能的全部內容嗎? – Augwa