在一堆5中创建数组

问题描述

我有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分开,如果是,则添加睡眠。