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

Posted

技术标签:

【中文标题】如何每 5 个结果执行一次操作?【英文标题】:How to perform an action every 5 results? 【发布时间】:2010-12-02 19:24:10 【问题描述】:

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

基本上我只是想模拟一个有 5 列的表格。

【问题讨论】:

【参考方案1】:

你可以使用模运算符

for(int i = 0; i < 500; i++)

    if(i % 5 == 0)
    
        //do your stuff here
    

【讨论】:

如果情况允许也可以直接使用for ($i = 0; $i &lt; 500; $i += 5) ... @Johannes 我认为他想对从 0 到 n 的每个整数进行处理,但对每第 5 个元素执行一次操作。不过,我可能弄错了。 请注意,(i%5==0) 将在第一次、第六次、第十一次……通过时运行。使用(i%5==4) 在第五、第十、第十五……传球时触发。 为了清楚起见,这是循环应该从 1 作为索引开始的时间之一,因为使用 0 会使它不那么清晰。【参考方案2】:

对于 html 表格,试试这个。


php for($i = $start; $i < $end; $i++)  ?>
         = $i; ?>
    
    

【讨论】:

$count 应该重命名。 “计数”这个名字表明你会得到那么多的细胞。如果 $start 未设置为零,您将不会获得等于 $count 的单元格数。【参考方案3】:

正如所指出的,可以使用带模数的条件。您也可以使用嵌套循环来做到这一点。

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)

【讨论】:

【参考方案4】:

另一种变化:

诠释 j = 0; for(int i = 0; i = 5) j = 0; //在这里做你的事情

我很老土,我记得除法需要很长时间。使用现代 CPU,这可能并不重要。

【讨论】:

if 不应该是 if(j==5) 吗?【参考方案5】:

这可以在 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;
        
    


【讨论】:

【参考方案6】:
// That's an easy one

for($i=10;$i<500;$i+=5)

    //do something

【讨论】:

此循环中的代码不会在每 5 次运行时被调用,它会在每次运行时调用!只有您的变量 $i 每次运行都会增加 5。

以上是关于如何每 5 个结果执行一次操作?的主要内容,如果未能解决你的问题,请参考以下文章

crontab怎样每隔5分钟执行一次脚本

MS Excel - 如何每 5 秒自动刷新一次单元格?

让PHP文件每隔几秒执行一次

使用PHP如何做到每隔5分钟的时间,首页会向服务器轮询一次,以便获得最新的数据。

Spring+quartz 做定时任务时,每5分种执行一次,怎么写法

如何制作一个循环或每 5 秒执行一次任务然后自行重置的东西?