我写的这个方法,是通过取数组交集的方式,效率和其它方式没有比过,不知道具体怎么样,功能已经测试过通过了。不多说,上代码:
/**
*获取指定范围下标的数组
*@params $arr 原数组
*@params $start 开始下标
*@params $end 结束下标
*@return 返回指定下标范围的数组
*/
function getByKeyRang($arr, $start, $end){
$return_keys = range($start, $end);
$return_keys = array_flip($return_keys);
return array_intersect_key($arr, $return_keys);
}
//测试
$arr = array(1=>'sadas',20=>'aasd',5002=>'fghfg', 580=>'dfgfdg', 190023=>'rty',248=>'kj',76=>'sddd',606=>'sddd', 505=>'dfgfdg');
var_dump(getByKeyRang($arr, 501, 599));
?>