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
}

それ以外の場合は、モジュロ演算子を使用して、5 回目の反復のいずれかを行っているかどうかを判断できます。

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 に答える