Php 创建一个5人一组的数组
我有15条记录,前5条记录应该正常迭代,之后所有记录应该间隔2秒,以5条记录为一组,即基本上我应该有3组5条记录。到目前为止,我已经尝试了:Php 创建一个5人一组的数组,php,arrays,sleep,chunks,Php,Arrays,Sleep,Chunks,我有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
$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上也是如此。。。
因此,您需要检查flag是否可以被5整除,如果可以,请添加sleep。只需使用
array\u chunk
,然后使用两个嵌套循环对结果进行迭代…?我试图用array\u chunk分割数组,然后在foreach内部进行foreach,但似乎犯了一些错误,你能详细地指导我吗?我不知道你需要什么样的指导,比如嵌套两个循环来迭代二维数组。向我们展示您尝试了什么,并描述问题的具体原因。