问题描述
我有15条记录,前5条记录应该正常迭代,之后所有记录应间隔2秒,一堆5条记录,即基本上我应该有3组5条记录。到目前为止,我已经尝试过:
$flag = 0;
foreach($db_array as $arr){
if($flag>4) {
sleep(2);
}
if($flag >= 15 )
break;
$flag++;
}
输出:
A===07:17:38
B===07:17:38
C===07:17:38
D===07:17:38
E===07:17:38
F===07:17:38
G===07:17:40
H===07:17:42
I===07:17:44
J===07:17:46
K===07:17:48
L===07:17:50
M===07:17:52
N===07:17:54
O===07:17:56
P===07:17:58 07:18:00
解决方法
我认为您可以尝试这样的事情:
$flag = 0;
// Fake array,use your own DB array here
$db_array = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","Q","P","R"];
foreach($db_array as $arr){
if($flag % 5 == 0) {
sleep(2);
}
// Added print to show time
print_r($arr." - ".date("Y.m.d H:i:s")."\n");
$flag++;
if($flag >= 15 )
break;
}
这将打印输出:
A - 2020.09.17 10:47:16
B - 2020.09.17 10:47:16
C - 2020.09.17 10:47:16
D - 2020.09.17 10:47:16
E - 2020.09.17 10:47:16
F - 2020.09.17 10:47:18
G - 2020.09.17 10:47:18
H - 2020.09.17 10:47:18
I - 2020.09.17 10:47:18
J - 2020.09.17 10:47:18
K - 2020.09.17 10:47:20
L - 2020.09.17 10:47:20
M - 2020.09.17 10:47:20
N - 2020.09.17 10:47:20
O - 2020.09.17 10:47:20
基本上,
if($flag>4) {
sleep(2);
}
一旦标志高于4,此检查将睡眠2秒钟,因此也会在5、6、7上睡眠... 因此,您需要检查标志是否与5分开,如果是,则添加睡眠。