php获取指定范围内最接近数的方法
本文实例讲述了php获取指定范围内最接近数的方法。分享给大家供大家参考。具体实现方法如下:
//Returnsthenexthigherorlowernumber functionNextRelatedNumber($number,$range){ $r=$number%$range; $f=$number-$r; $b=round($r/$range,0); return($b==1)?$f+$range:$f; } //Returnsthenexthighernumber functionNextHigherNumber($number,$range){ $r=$number%$range; $f=$number-$r; $b=ceil($r/$range); return($b==1)?$f+$range:$f; } //Returnsthenextlowernumber functionNextLowerNumber($number,$range){ $r=$number%$range; $f=$number-$r; $b=floor($r/$range); return($b==1)?$f+$range:$f; } //Returnsthenextrelatednumberfromanarray functionNextNumberArray($Number,$NumberRangeArray){ $w=0; $c=-1; $abstand=0; $l=count($NumberRangeArray); for($pos=0;$pos<$l;$pos++){ $n=$NumberRangeArray[$pos]; $abstand=($n<$Number)?$Number-$n:$n-$Number; if($c==-1){ $c=$abstand; continue; } elseif($abstand<$c){ $c=$abstand; $w=$pos; } } return$NumberRangeArray[$w]; } //Examples //-------- //01020304050... print'NextRelatedNumber:'; printNextRelatedNumber(44,10)."\n"; //returns-->40 //020406080100... print'NextHigherNumber:'; printNextHigherNumber(41,20)."\n"; //returns-->60 //05101520253035... print'NextLowerNumber:'; printNextLowerNumber(57,5)."\n"; //returns-->55 //ExamplewithArray print'NextNumberArray:'; printNextNumberArray(45,array(3,8,19,34,56,89))."\n"; //returns-->34 //(45isbetween34and56but34isthenext)
希望本文所述对大家的php程序设计有所帮助。