从大型数组中选择每个第n个项目最有效的方法是什么?有没有一个“聪明”的做法或循环的唯一途径?
有几点要考虑:
>阵列相当大,共有13万件
>我必须选择第205个项目
>这些项目没有数字索引,所以($i = 0; $i = = 130000; $i = 205)将不起作用
到目前为止,这是我提出的最有效的方法:
$result = array();
$i = 0;
foreach($source as $value) {
if($i >= 205) {
$i = 0;
}
if($i == 0) {
$result[] = $value;
}
$i++;
}
或者与模数相同:
$result = array();
$i = 0;
foreach($source as $value) {
if($i % 205 == 0) {
$result[] = $value;
}
$i++;
}
这些方法可能相当慢,有什么办法可以改进吗?或者我只是在这里分裂头发?
编辑
好的答案周围有适当的解释,试图选择最适合作为公认的答案.谢谢!