如何每5个结果执行一次操作?

时间:2009-09-30 21:08:05

标签: php loops for-loop logic

如何在每5个结果的for循环中执行操作?

基本上我只是试图模拟一个包含5列的表。

6 个答案:

答案 0 :(得分:44)

你可以使用模数运算符

for(int i = 0; i < 500; i++)
{
    if(i % 5 == 0)
    {
        //do your stuff here
    }
}

答案 1 :(得分:2)

对于HTML表格,请尝试此操作。

<?php
$start = 0;
$end = 22;
$split = 5;
?>
<table>
    <tr>
  <?php for($i = $start; $i < $end; $i++) { ?>
    <td style="border:1px solid red;" >
         <?= $i; ?>
    </td>
    <?php if(($i) % ($split) == $split-1){ ?>
    </tr><tr>
    <?php }} ?>
    </tr>
</table>

答案 2 :(得分:0)

如所指出的,可以使用具有模数的条件。您也可以使用嵌套循环来完成它。

int n = 500;
int i = 0;

int limit = n - 5
(while i < limit)
{
   int innerLimit = i + 5
   while(i < innerLimit)
   {
       //loop body
       ++i;
   }
   //Fire an action
}

如果n保证为5的倍数,或者如果你不关心在最后发射额外的事件,那么这种方法很有效。否则你必须将它添加到最后,这使它不那么漂亮。

//If n is not guaranteed to be a multiple of 5.
while(i < n)
{
  //loop body
  ++i;
}

并将int limit = n - 5更改为int limit = n - 5 - (n%5)

答案 3 :(得分:0)

另一种变化:

int j=0;
for(int i = 0; i < 500; i++) 
{ 
    j++;
    if(j >= 5) 
    { 
        j = 0;
        //do your stuff here 
    } 
}

我很老式,我记得分工花了很长时间。有了现代的cpu,它可能并不重要。

答案 4 :(得分:0)

这可以在foreach循环中获取实时索引:

<?php

// Named-Index Array
$myNamedIndexArray = array('foo' => 'bar', 'go' => 'habs', 'CSGO_bestTeam' => 'fnatic', 'test' => 'one two', 'potato' => 'french fries', 'tomato' => 'ketchup', 'coffee' => 'expresso', 'window' => 'cleaner', 'truck' => 'load', 'nine' => 'neuf', 'ten' => 'dix');

// Numeric-Index Array of the Named-Index Array
$myNumIndex = array_keys($myNamedIndexArray);


foreach($myNamedIndexArray as $key => $value) {
    $index = array_search($key,$myNumIndex);

    if ($index !== false) {
        echo 'Index of key "'.$key.'" is : '.$index.PHP_EOL;

        if (($index+1) % 5 == 0) {
            echo '[index='.$index.'] stuff to be done every 5 iterations'.PHP_EOL;
        }
    }

}

答案 5 :(得分:-2)

// That's an easy one

for($i=10;$i<500;$i+=5)
{
    //do something
}