在线等,挺急的!求一个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。
牛魔王的故事
浏览 228回答 2
2回答

慕容708150

$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);还差点,就对了。

茅侃侃

$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']
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript