$list = array();
foreach ($arr as $key => $value) { // $arr为很大的索引数组
array_push($list, $value);
if($key == 0) continue;
if($key%1000 == 0){
doSth($list);
$list = array();
}
}
doSth($list);
感觉每次都要写两遍doSth很蠢,而且还要判断key0的情况
$list = array(); foreach ($arr as $key => $value) { // $arr为很大的索引数组 if($key%1000 != 0){
array_push($list, $value); } } if (!empty($list)) { doSth($list); }
如果还想简化就用函数:array_filter
没大看懂你这个,既没有判断$key%1000 == 0的情况,也没有doSth对每1000循环的$list进行处理
@我忘记了: 你的语句是跳过每次$key 为0的时候,并记录当前循环的键值对;
在 $key%1000
==0 的时候执行;
我的语句是在 $key%1000!=0 就记录当前的键值对,都记录完后,最后一次执行;
你的语句是每次遇到 $key%1000
==0 就执行一次,我的是一次记录,一次执行;