php数组搜索算法


假设数组有10000个元素,键值为小于1000000的无序的正整数,且不连续,如下

$arr=array(1=>'a',20=>'ad',5002=>'ss',190023=>'sd',248=>'ff',76=>'sddd'...);

现在要获取数组$arr中键值大于500小于600的元素,不用foreach完全循环一遍的话是否有更高效的算法?

php 数组 算法
1条评论 | 修改 | 链接
  • 分头诗人

    不建议创建有10000个元素的数组

2 个回答


  • Airy Airy 86

    如果要讨论效率的话,不建议创建有10000个元素的数组。

    0条评论 | 修改 | 链接
  • 周翔 周翔 27

    array_walk()

    可以不用再php的层面上去foreach,但array_walk的实现其实也是遍历整个hashtable。

    1条评论 | 修改 | 链接
    • TK

      如果要找键值,为什么不直接定向到$arr[500]到$arr[600], 只找这个范围段呢?