2011-07-04 30 views

回答

3

DhruvPathak的解決方案類型的作品,但正確的答案應該是像

$freq = 50; 
for($i = 0 ;$i < 1000 ;$i++) 
{ 
   /* some work here */ 

    if($i % $freq  == ($freq-1)) 
      echo  "my message \n"; 
} 
if($i % $freq  != ($freq-1)) 
   echo  "last echo \n"; 

在此方案中,回聲每個50後進行(而不是第一個項目之後做的,然後每個50後項目),如果需要,最後的回聲將在最後完成。

8

您可以在if條件中使用「%」運算符。

for($i = 0 ;$i < 1000 ;$i++) 
{ 
    /* some work here */ 

    if($i % 50 == 0) 
     echo "my message \n"; 

} 
+0

因此,它是那麼容易!謝謝,我必須等待12分鐘才能接受它。 – EnexoOnoma

3

您必須保留一個計數器,並檢查它在每次迭代:

$i = 1; 

foreach ($something as $current) { 

    if ($i % 50 == 0) { 
     echo "Iteration: $i \n" ; 
    } 

    $i++ ; 

} 

modulo operator %是這個有用的。

+0

Ευχαριστώ,Ελληνικά|Русский|한국어|日本語|簡體中文|繁體中文|العربيةBookmark and Share – EnexoOnoma

+0

Καλήσυνέχεια:)休息:請忽略奇怪的語言,只是pleasantries – Fanis

1

你也可以使用這一個

$i = 0; 
    while($i <1000): 
     // do your work 

     if($i % 50 == 0){ 
      echo "message \n"; 
     } 
     $i++ ; 
    endwhile; 
+0

爲什麼你會跳過工作時,你回聲的消息? – unbeli

+0

@unbeli:我現在糾正它 – chhameed