2015-01-11 2 views
0

У меня проблема с моим переменным внутри вложенного цикла Еогеаспа в PHP:PHP итерация вложенного цикла Еогеаспа и установить переменную

Мой переменный $ счетчик не сбрасывается до 1 после того, как внутренний цикл выполняется. Я также попытался отключить ($ co unter) после внутреннего цикла, который тоже не имел никакого эффекта. Я знаю, что нет внутренней области в циклах foreach в php. Но я подумал, как только я установил $ 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) [сделать что-то} во время второй итерации через цикл 1, а затем цикл 2. Я также повторил счетчик $, и это только 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