php 如何快速判断一个数字属于什么范围

第一种方法

假设你的范围是之间是连续的(其实不连续也很容易实现)、没有重合的(这个没问题吧),那么通过对范围的起始位置排序,就可以很容易地用二分来实现。

$ranges = array(1, 100, 212, 324, 382, 465, 552);

然后你要做的事情就是用二分查找在ranges里面找到一个a[i]满足a[i] <= t && t < a[i+1]。

第二种方式

function sorts($stage_data,$stage_num) {
 array_push($stage_data,$stage_num);
 $data = array_unique($stage_data);
 //asort($data);
 sort($data);
 //var_dump($data);
 return array_search($stage_num,$data);
}
$stage_data = array(0,26,51,76,100);
$stage_num  = 16;
echo sorts($stage_data,$stage_num);
//res:1
?>

数据量大的时候个人没有做测试,不知道那种性能最优!



本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部