PHP循环的foreach确定第二次和第三次迭代

问题描述:

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 

你不需要额外的变量,因为你的数组是基于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多谢了......顺便说一下,例如什么意思? –

你想检查第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++; 

         }