数码控科技猎奇Iphone动漫星座游戏电竞lolcosplay王者荣耀攻略allcnewsBLOGNEWSBLOGASKBLOGBLOGZSK全部技术问答问答技术问答it问答代码软件新闻开发博客电脑/网络手机/数码笔记本电脑互联网操作系统软件硬件编程开发360产品资源分享电脑知识文档中心IT全部全部分类全部分类技术牛文全部分类教程最新网页制作cms教程平面设计媒体动画操作系统网站运营网络安全服务器教程数据库工具网络安全软件教学vbscript正则表达式javascript批处理更多»编程更新教程更新游戏更新allitnewsJava新闻网络医疗信息化安全创业站长电商科技访谈域名会议专栏创业动态融资创投创业学院 / 产品经理创业公司人物访谈营销开发数据库服务器系统虚拟化云计算嵌入式移动开发作业作业1常见软件all电脑网络手机数码生活游戏体育运动明星影音休闲爱好文化艺术社会民生教育科学医疗健康金融管理情感社交地区其他电脑互联网软件硬件编程开发360相关产品手机平板其他电子产品摄影器材360硬件通讯智能设备购物时尚生活常识美容塑身服装服饰出行旅游交通汽车购房置业家居装修美食烹饪单机电脑游戏网页游戏电视游戏桌游棋牌游戏手机游戏小游戏掌机游戏客户端游戏集体游戏其他游戏体育赛事篮球足球其他运动球类运动赛车健身运动运动用品影视娱乐人物音乐动漫摄影摄像收藏宠物幽默搞笑起名花鸟鱼虫茶艺彩票星座占卜书画美术舞蹈小说图书器乐声乐小品相声戏剧戏曲手工艺品历史话题时事政治就业职场军事国防节日风俗法律法规宗教礼仪礼节自然灾害360维权社会人物升学入学人文社科外语资格考试公务员留学出国家庭教育学习方法语文物理生物工程学农业数学化学健康知识心理健康孕育早教内科外科妇产科儿科皮肤科五官科男科整形中医药品传染科其他疾病医院两性肿瘤科创业投资企业管理财务税务银行股票金融理财基金债券保险贸易商务文书国民经济爱情婚姻家庭烦恼北京上海重庆天津黑龙江吉林辽宁河北内蒙古山西陕西宁夏甘肃青海新疆西藏四川贵州云南河南湖北湖南山东江苏浙江安徽江西福建广东广西海南香港澳门台湾海外地区

河北排列7app:php 快速判断一个数字属于什么范围的实现方法

来源:脚本之家  责任编辑:小易  

河北20选五开奖结果 www.vhmyd.cn 需求是这样 ...

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;
# ...

这样的规则有上千条 ... 于是满屏幕都是 $foo > __ && $foo < __ $bar = __ ...

效率和美观都成问题 ...

临界点的数值近乎随机 ... 我想不到可以通过 $foo 推算 $bar 的公式 ...
目前的想法是把所有的规则二分掉 ... 这样可以提高效率 ... 但美观依然是问题 ...
如果封在一个函数里 ... 看上去似乎确实美观一些 ... 但效率反而不如这样 ...
有没有什么两者兼顾的比较完美的解决方案 ..?
追加 ... 自己写了一个借助数组排序的方案 ...
效率和自己实现函数差不多 ... 依然不如二分 ...

第一种方法

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

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

然后你要做的事情就是用二分查找在ranges里面找到一个a[i]满足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
?>

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


  • 本文相关:
  • php实现批量修改文件后缀名的方法
  • php伪造referer实例代码
  • php冒泡排序与快速排序实例详解
  • php使用redis替代文件存储session的方法
  • php 错误之引号中使用变量
  • php类中private属性继承问题分析
  • php+xml编程之xpath的应用实例
  • php 各种应用乱码问题的解决方法
  • php目录管理函数小结
  • php中将数组存到文件里的实现代码
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 河北20选五开奖结果 - 频道导航
    Copyright © 2017 河北20选五开奖结果 www.vhmyd.cn All Rights Reserved
  • 西安外事学院在省茶艺大赛中创多项佳绩西安外事学院-陕西教育新闻 2019-02-20
  • 把市场经济说成计划经济是不是痴呆病? 2019-02-20
  • 人民日报评论员:弘扬“上海精神” 破解时代难题 2019-02-20
  • 山阴:民警进校园宣讲交通安全知识 2019-02-19
  • 山西阳泉提高发现问题能力 点面结合开展延伸监督 2019-02-19
  • 萌!云南野生豹猫幼崽获救 呆萌可爱还粘人 2019-02-19
  • “云南导游辱骂威胁游客案”一审宣判:强迫交易罪  云南导游获刑6个月 2019-02-19
  • 央行行长点赞“温州指数”呼吁正规金融提供更多服务 2019-02-18
  • 让山里娃感受智慧科技乐趣 2019-02-18
  • 欧美同学会年会签约73个项目 431亿元将投向河南 2019-02-18
  • 为什么说中国是现存国际秩序的维护者? 2019-02-17
  • 【专题】网络中国节·2018端午节 2019-02-17
  • 党的革命精神具有内在一致性 2019-02-17
  • 分开来吃相当于延长节日气氛对身体也有好处。 2019-02-17
  • 2017中国网络文化产业年会 2019-02-16
  • 770| 795| 896| 121| 66| 56| 634| 500| 143| 417|