为了账号安全,请及时绑定邮箱和手机立即绑定

在线等,挺急的!求一个php最近的最小值算法各位有什么建议?

在线等,挺急的!求一个php最近的最小值算法各位有什么建议?

牛魔王的故事 2019-09-26 09:45:44
如果给出一个val=0.95,返回数组中最近的一个比val=0.95小的userid,是0.9。如果一个都没有比0.95小的,那么返回,第一个val=0.95,对应的userid。大概意思是:总是取数组从头开始最近的
查看完整描述

2 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

$a=array(
array('userid'=>3,'val'=>0.95),
array('userid'=>1,'val'=>0.95),
array('userid'=>2,'val'=>0.95),
array('userid'=>5,'val'=>0.95),
array('userid'=>8,'val'=>0.95)
);
$x=0.9;
$count=count($a);
$b=[];
foreach($aas$v){
$arr2['val']=abs($x-$v['val']);
$arr2['userid']=$v['userid'];
$b[]=$arr2;
//print_r($v['val']);
}
$min=min($b);
print_r($min);
还差点,就对了。
                            
查看完整回答
反对 回复 2019-09-26
?
茅侃侃

TA贡献1842条经验 获得超21个赞

$a=[
['userid'=>3,'val'=>0.95],
['userid'=>1,'val'=>0.95],
['userid'=>2,'val'=>0.9],
['userid'=>5,'val'=>0.95],
['userid'=>8,'val'=>0.95]
];
$x=0.9;
$b1=[];
$b2=[];
foreach($aas$v){
if($v['val']<$x&&!count($b1)){
$b1=$v;
}
if($v['val']===$x&&!count($b2)){
$b2=$v;
}
}
$b=$b1?:$b2;
                            
查看完整回答
反对 回复 2019-09-26
  • 2 回答
  • 0 关注
  • 227 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信