从数组中选择第 n 个项目
从大型数组中选择第 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++;
}
这些方法可能相当慢,有什么办法可以改进吗?还是我只是在这里劈头发?
编辑
有适当的解释,到处都是好的答案,试图选择最合适的答案作为公认的答案。谢谢!