Как разделить ваш foreach, который будет делать 1000 циклов и отображать вывод на каждые 50 циклов? - PullRequest
3 голосов
/ 04 июля 2011

Я использую оператор foreach, который повторяется около 1000 и более раз.Мне было интересно, есть ли способ отобразить результаты, например, каждые 50 циклов, пока он не достигнет 1000 и не остановится.что нашел сценарий вместо того, чтобы ждать много раз для всего этого.

Спасибо

Ответы [ 4 ]

8 голосов
/ 04 июля 2011

Вы можете использовать оператор «%» в условии if.

for($i = 0 ;$i < 1000 ;$i++)
{
   /* some work here */

    if($i % 50  == 0)
      echo  "my message \n";

}
3 голосов
/ 04 июля 2011

Решение ДхрувПатхака работает, но правильный ответ будет выглядеть примерно так:

$freq = 50;
for($i = 0 ;$i < 1000 ;$i++)
{
   /* some work here */

    if($i % $freq  == ($freq-1))
      echo  "my message \n";
}
if($i % $freq  != ($freq-1))
   echo  "last echo \n";

В этом решении эхо-сигнал выполняется ПОСЛЕ каждых 50 (вместо того, чтобы делать это после первого элемента, а затем после каждого50 пунктов), и в конце при необходимости делается окончательное эхо.

3 голосов
/ 04 июля 2011

Вы должны будете держать счетчик и проверять его на каждой итерации:

$i = 1;

foreach ($something as $current) {

    if ($i % 50 == 0) {
        echo "Iteration: $i \n" ;
    }

    $i++ ;

}

Оператор по модулю% полезен для этого.

1 голос
/ 04 июля 2011

Вы также можете использовать это

$i = 0;
    while($i <1000):
      // do your work

        if($i % 50  == 0){
          echo  "message \n";
         }
       $i++ ;
   endwhile;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...