永发信息网

php查讯指定数值在数组内最接近的数 例如 数组里有 1,5,8,12,15,19,21

答案:2  悬赏:0  手机版
解决时间 2021-01-29 11:22
php查讯指定数值在数组内最接近的数 例如 数组里有 1,5,8,12,15,19,21
最佳答案
你摆脱不了循环的,肯定要循环一次,不然,你怎么知道最后一个不是比你找到的更接近呢。当然,这个循环不一定要你自己代码写而已,实际也是要循环。

而且,你这个例子有矛盾的地方,12难道比8更接近10?

一般这种东西,我不会去纠结效率,等你需要对这个纠结效率的时候,你就是大神。追问能把代码贴出来参考下吗得到的结果最好是比这个数值大的追答$arr = [1,5,8,12,15,19,21];
rsort($arr);
foreach($arr as $k => $v){
$m = $v;
if($v <= 12){
if($k === 0){
break;

}

$m = ($arr[$k-1] - 12) <= (12 - $m) ? $arr[$k-1] : $m;

break;

}

}

我随便贴一个,效率不算高,这种方式跟数字分布有关。也不想去分布分析,直接排个序而已追问$a=[1,6,8,12,13,14,66,139]; function findClosest(&$a,$f){ $the=FALSE; start: $cur= current($a); if($the===FALSE|| abs($cur-$f)< abs($the-$f)||(abs($cur-$f)== abs($the-$f)&&$cur>$the)){ $the= $cur; } if(next($a)===FALSE){ return $the; }else{ goto start; } } echo findClosest($a, 10); 能帮我看看哪错了吗start 报错 这能用别的替换吗追答你这是用什么语言啊。。。。php没有star goto结构的追问这也是别人给我发的 没弄明白所以和你请教一下我先采纳你吧追答我也看不懂,start goto结构,一般现在都没有或者不推荐这种写法了追问说5.3里支持 但我怎么弄都报错那有没有别的办法追答你可以拿我给你贴的程序去试试,效率还算不错了,就是跟数据的分布有关,结果越靠前,效率越高。就算靠后,也不见得效率差,基本上微秒级别的,可以忽略追问好的 非常感谢 麻烦你了
全部回答
一般效率比较高的就是二分法了~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
小隐豹村怎么去啊,我要去那办事
文谱的意思是什么啊?知道的请说下!
本田雅阁2.4换自动变速箱油用多少升
为什么许多男人不能突破1米8身高难关呢?
弹弹堂护甲能减少魔攻吗
骑马场地址好找么,我有些事要过去
董二庄村地址在什么地方,想过去办事
【四分之三袋糖加上120克砝码的质量与一袋糖
最考验耐性的事是什么?哪些事很考验一个人的
监趣的意思是什么啊?知道的请说下!
海的女儿的感受
300英雄125是什么意思
豆角这是怎么 了?
阳山马术学府地址在什么地方,我要处理点事
眼镜轴位误差特大会大会带来什么伤害
推荐资讯
婚后丈夫背着妻子购买彩票在外欠下大量债务,
李八庙小学校地址好找么,我有些事要过去
我想做铝合金框架
退赃的意思是什么啊?知道的请说下!
哀壮的意思是什么啊?知道的请说下!
撞8台球会所地址在什么地方,我要处理点事
福茂园台球会所地址有知道的么?有点事想过去
高中物理竞赛考哪几本书?
潭泊完全小学地址在哪,我要去那里办事
如何用简便,可靠的方法鉴别棉、黏胶、丝、涤
韩语五六级的分数线各是多少,在哪里查分,多
张某以侮辱罪对王某提起自诉。一审中,经调解
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?