我正在使用一个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;