如何分割你的foreach,它将使1000个循环,并在每50个循环中返回输出


How to split your foreach that will make 1000 loops and echo the output on every 50 loops?

我正在使用一个foreach语句,循环大约1000次或更多次。我想知道是否有一种方法可以像每50个循环一样重复结果,直到它达到1000并停止。

这样做的目的是因为我正在编写一个爬虫,我希望偶尔看到一些脚本发现的结果,而不是等待很多时间来完成整个事情。

谢谢

可以在if条件中使用"%"运算符

for($i = 0 ;$i < 1000 ;$i++)
{
   /* some work here */
    if($i % 50  == 0)
      echo  "my message 'n";
}

DhruvPathak的解决方案是可行的,但正确的答案应该是

$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项之后执行),如果需要,则在最后执行最后的回显。

您必须保留一个计数器并在每次迭代中检查它:

$i = 1;
foreach ($something as $current) {
    if ($i % 50 == 0) {
        echo "Iteration: $i 'n" ;
    }
    $i++ ;
}

模运算符%对此很有用

你也可以用这个

$i = 0;
    while($i <1000):
      // do your work
        if($i % 50  == 0){
          echo  "message 'n";
         }
       $i++ ;
   endwhile;