3

如何在 foreach 中每 5 个(例如)循环执行一次操作?

我添加$i++了如何逐步检查?

4

3 回答 3

11

使用模来确定偏移量。

$i = 0;

foreach ($array as $a) {
   $i++;
   if ($i % 5 == 0) {
       // your code for every 5th item
   }

   // your inside loop code
}
于 2012-04-11T21:44:13.413 回答
7

除非你在每次迭代中单独做某事,否则不要。

使用 for 循环并每次将计数器递增 5:

$collectionLength = count($collection);

for($i = 0; $i < $collectionLength; i+=5)
{
    // Do something
}

否则,您可以使用模运算符来确定您是否处于第五次迭代之一:

if(($i + 1) % 5 == 0) // assuming i starts at 0
{
    // Do something special this time
}
于 2012-04-11T21:41:45.990 回答
1
    for($i = 0; $i < $items; $i++){
    //for every 5th item, assuming i starts at 0 (skip)
        if($i % 5 == 0 && $i != 0){
            //execute your code
        }
    }
于 2012-04-11T21:48:43.650 回答