如何从大型数组中选择每个第n项是最有效的方式?有没有“聪明”的方法还是循环是唯一的方法?
需要考虑以下几点:
- 该数组非常大,具有130,000个项目
- 我必须选择每205个项目
- 这些项目没有数值索引,因此
for($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++;
}
这些方法可能会很慢,有没有什么方法可以改进?还是我只是在纠结小细节吗?
编辑
各位都给出了合适的答案并附有适当的解释,我选择了最合适的答案作为采纳答案。谢谢!