如何每 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 < 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 个结果执行一次操作?的主要内容,如果未能解决你的问题,请参考以下文章
使用PHP如何做到每隔5分钟的时间,首页会向服务器轮询一次,以便获得最新的数据。