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

急求!!!!如何求最近的最小值,求指导!

急求!!!!如何求最近的最小值,求指导!

青春有我 2019-06-09 09:21:50
<?php$a=array(array('userid'=>3,'val'=>9.5),array('userid'=>1,'val'=>9),array('userid'=>2,'val'=>9.5),array('userid'=>5,'val'=>9.5),array('userid'=>8,'val'=>9.5));//print_r($a);$b=9.5;foreach($aas$value){if($value['val']<=$b){$userid=$value['userid'];break;}}echo$userid;?>如果给出一个val=0.95,返回数组中最近的一个比val=0.95小的userid,是0.9。如果一个都没有比0.95小的,那么返回,第一个val=0.95,对应的userid。大概意思是:总是取数组从头开始最近的<=0.95的,userid。,如果有相等,那么取后面那个看看是不是<9.5,如果是,就是9,对应的userid。
查看完整描述

2 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

$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-06-09
?
aluckdog

TA贡献1847条经验 获得超7个赞

$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-06-09
  • 2 回答
  • 0 关注
  • 302 浏览
慕课专栏
更多

添加回答

举报

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