php – 从数组中选择第n个项目

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 从数组中选择第n个项目脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
从大型数组中选择每个第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++;
}

这些方法可能相当慢,有什么办法可以改进吗?或者我只是在这里分裂头发?

编辑

好的答案周围有适当的解释,试图选择最适合作为公认的答案.谢谢!

基于比较测试,foreach循环提供了大数组中最快的迭代.我会坚持一些类似于你所拥有的东西,除非有人希望解决循环展开的问题.

这个答案应该跑得更快

$result = array();
$i = 0;
foreach($source as $value) {
    if ($i++ % 205 == 0) {
        $result[] = $value;
    }
}

我没有时间测试,但如果您首先对数组进行数字索引,则可能会使用@ haim解决方案的变体.值得一试,看看您以前的解决方是否可以获得任何收益

$result = array();
$source = array_values($source);
$count = count($source);
for($i = 0; $i < $count; $i += 205) {
    $result[] = $source[$i];
}

这将在很大程度上取决于函数array_values的优化.这可以很好地表现得非常好.

脚本宝典总结

以上是脚本宝典为你收集整理的php – 从数组中选择第n个项目全部内容,希望文章能够帮你解决php – 从数组中选择第n个项目所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。