zoukankan      html  css  js  c++  java
  • 取数组中一段值的算法(转)

    假设数组有1000个元素,键值为小于1000000的无序的正整数,且不连续,如下$arr=array(1=>'sadas',20=>'aasd',5002=>'fghfg',190023=>'rty',248=>'kj',76=>'sddd'...);
    现在要获取数组$arr中键的值大于500小于600的元素,不用foreach完全循环一遍的话是否有更高效的算法?

     1 <?php
     2 /**
     3 *获取指定范围下标的数组
     4 *@params $arr  原数组
     5 *@params $start  开始下标
     6 *@params $end    结束下标
     7 *[url=u.php?uid=5527]@return[/url]   返回指定下标范围的数组 
     8 */
     9 function getByKeyRang($arr, $start, $end){
    10 $return_keys = range($start, $end);
    11 $return_keys = array_flip($return_keys);
    12 return array_intersect_key($arr, $return_keys);
    13 }
    14 
    15 //测试
    16 $arr = array(1=>'sadas',20=>'aasd',5002=>'fghfg', 580=>'dfgfdg', 190023=>'rty',248=>'kj',76=>'sddd',606=>'sddd', 505=>'dfgfdg');
    17 var_dump(getByKeyRang($arr, 501, 599));
    18 ?>
  • 相关阅读:
    1. 两数之和
    RabbitMQ主题交换机
    RabbitMQ路由
    RabbitMQ发布订阅
    RabbitMQ简介和安装
    55. 跳跃游戏
    63. 不同路径 II
    62. 不同路径
    6. Z 字形变换
    sql注入攻击与防御第一章(笔记)
  • 原文地址:https://www.cnblogs.com/xingmeng/p/3464735.html
Copyright © 2011-2022 走看看