最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php 快速判斷一個(gè)數(shù)字屬于什么范圍的實(shí)現(xiàn)方法

 更新時(shí)間:2018年07月11日 15:29:10   作者:gb4215287  
這篇文章主要介紹了php 快速判斷一個(gè)數(shù)字屬于什么范圍的實(shí)現(xiàn)方法,需要的朋友可以參考下

需求是這樣 ...

if ( $foo > 0 && $foo < 100 ) $bar = 1;
elseif ( $foo > 99 && $foo < 212 ) $bar = 2;
elseif ( $foo > 211 && $foo < 324 ) $bar = 3;
elseif ( $foo > 323 && $foo < 382 ) $bar = 4;
elseif ( $foo > 381 && $foo < 465 ) $bar = 5;
elseif ( $foo > 464 && $foo < 552 ) $bar = 6;
# ...

這樣的規(guī)則有上千條 ... 于是滿(mǎn)屏幕都是 $foo > __ && $foo < __ $bar = __ ...

效率和美觀(guān)都成問(wèn)題 ...

臨界點(diǎn)的數(shù)值近乎隨機(jī) ... 我想不到可以通過(guò) $foo 推算 $bar 的公式 ...
目前的想法是把所有的規(guī)則二分掉 ... 這樣可以提高效率 ... 但美觀(guān)依然是問(wèn)題 ...
如果封在一個(gè)函數(shù)里 ... 看上去似乎確實(shí)美觀(guān)一些 ... 但效率反而不如這樣 ...
有沒(méi)有什么兩者兼顧的比較完美的解決方案 ..?
追加 ... 自己寫(xiě)了一個(gè)借助數(shù)組排序的方案 ...
效率和自己實(shí)現(xiàn)函數(shù)差不多 ... 依然不如二分 ...

第一種方法

假設(shè)你的范圍是之間是連續(xù)的(其實(shí)不連續(xù)也很容易實(shí)現(xiàn))、沒(méi)有重合的(這個(gè)沒(méi)問(wèn)題吧),那么通過(guò)對(duì)范圍的起始位置排序,就可以很容易地用二分來(lái)實(shí)現(xiàn)。

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

然后你要做的事情就是用二分查找在ranges里面找到一個(gè)a[i]滿(mǎn)足a[i] <= t && t < a[i+1]。

第二種方式

<?php
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
?>

數(shù)據(jù)量大的時(shí)候個(gè)人沒(méi)有做測(cè)試,不知道那種性能最優(yōu)!

相關(guān)文章

最新評(píng)論

油尖旺区| 福贡县| 镶黄旗| 亚东县| 宝鸡市| 云南省| 井研县| 宁陵县| 密山市| 石柱| 攀枝花市| 宁强县| 县级市| 开封县| 突泉县| 蒙阴县| 灯塔市| 陇川县| 唐山市| 耒阳市| 望谟县| 青神县| 临沧市| 清水河县| 白山市| 阿坝县| 盐亭县| 永济市| 康定县| 双峰县| 定西市| 河津市| 二手房| 桦川县| 长葛市| 扶绥县| 疏勒县| 花莲市| 延吉市| 山东省| 灵宝市|