Как выполнить действие каждые 5 результатов?
Как я могу выполнить действие в for
цикл каждые 5 результатов?
В основном я просто пытаюсь эмулировать таблицу с 5 столбцами.
6 ответов
Вы могли бы использовать оператор модуля
for(int i = 0; i < 500; i++)
{
if(i % 5 == 0)
{
//do your stuff here
}
}
Для таблицы HTML попробуйте это.
PHP $ start = 0; $ end = 22; $ split = 5;?><Таблица>php для ($ i = $ start; $ i <$ end; $ i ++) {?> = $i;?> TD> php if (($ i)% ($ split) == $ split-1) {?> TR> php}}?> TR> Table> 2009-09-30 22:02 2016-03-17 18:19Это работает, чтобы получить живой индекс в цикле 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; } } }
2009-09-30 21:30Как указано, можно использовать условие с модулем. Вы также можете сделать это с помощью вложенных циклов.
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)
2009-12-28 19:20Еще один вариант:
int j = 0; для (int i = 0; i < 500; i++) { j++; если (j >= 5) { j = 0; // делай свои вещи здесь } }Я старомоден, я помню, когда деление заняло много времени. С современным процессором это, вероятно, не имеет большого значения.
2011-09-17 01:15// That's an easy one for($i=10;$i<500;$i+=5) { //do something }