2015-07-12 223 views
0

PHP循環的foreach確定第二次和第三次迭代

這裏我怎麼可以檢測第二次和第三次迭代就是我所做的,但它沒有得到正確的答案

$sample_array = array('boom 1','boom 2','boom 3','boom 4','boom 5','boom 6','boom 7'); 

          $separator2 = 0; 
          $separator3 = 0; 
          foreach($sample_array as $sample_array_value){ 
           if(++$separator3 % 3 == 0) 
           { 
            echo $sample_array_value."<br /><br /> Separator 3 <br /><br />"; 
           } 
           else if(++$separator2 % 2 == 0) 
           { 
            echo $sample_array_value."<br /><br /> Separator 2 <br /><br />"; 
           } 
           else 
           { 
            echo $sample_array_value."<br />"; 
           } 
          } 

代碼的輸出:

boom 1 
boom 2 

Separator 2 

boom 3 

Separator 3 

boom 4 
boom 5 

Separator 2 

boom 6 

Separator 3 

boom 7 

哪項是錯誤的,我需要的輸出是:

boom 1 
boom 2 

Separator 2 

boom 3 

Separator 3 

boom 4 

Separator 2 

boom 5 
boom 6 

Separator 2 
Separator 3 

boom 7 

回答

3

你不需要額外的變量,因爲你的數組是基於0的索引,所以你可以直接使用這個鍵。此外,您必須稍微改變一下邏輯,以便獲得預期的輸出,例如

foreach($sample_array as $key => $sample_array_value){ 

    echo $sample_array_value . "<br />"; 

    if(($key + 1) % 2 == 0 && ($key + 1) % 3 == 0) 
     echo "<br>Separator 2 <br />Separator 3<br /><br />"; 
    elseif(($key + 1) % 2 == 0) 
     echo "<br>Separator 2 <br /><br />"; 
    elseif(($key + 1) % 3 == 0) 
     echo "<br>Separator 3 <br /><br />"; 

} 

輸出:

boom 1 
boom 2 

Separator 2 

boom 3 

Separator 3 

boom 4 

Separator 2 

boom 5 
boom 6 

Separator 2 
Separator 3 

boom 7 
+0

我該如何使用,在使用MySQL的只是這樣的foreach(mysql_fetch_array($查詢)爲$獲得){} $無鑰匙?原因 –

+0

@JoelEnanodJr然後初始化變量foreach循環之前,例如'$ count = 0;'並在foreach循環結尾增加它,例如'$ count ++;' – Rizier123

+0

謝謝sir @ Rizier123,即使我不理解你的代碼它解決了我的問題..我在no循環中hello多謝了......順便說一下,例如什麼意思? –

0

你想檢查第2和第3外,如果實現了繁榮。因爲你也希望分離器在繁榮後完成,然後把它放下。

$ sample_array = array('boom 1','boom 2','boom 3','boom 4','boom 5','boom 6','boom 7');

     $separator2 = 0; 
         $separator3 = 0; 
         $count = 1; 
         foreach($sample_array as $sample_array_value){ 
          echo $sample_array_value."<br />"; 
          if($count % 3 == 0) 
          { 
           echo "Separator 3 <br />"; 
          } 
          if($count % 2 == 0) 
          { 
           echo "Separator 2 <br /><br />"; 
          } 
          $count++; 

         } 
相關問題