当前位置:首页 > PHP教程 > php应用 > 列表

php获取指定范围内最接近数的方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-27 14:37:04 浏览: 评论:0 

这篇文章主要介绍了php获取指定范围内最接近数的方法,可实现根据给定区间长度划分各个区间,并在其中寻找与给定数最接近的数,需要的朋友可以参考下。

本文实例讲述了php获取指定范围内最接近数的方法,分享给大家供大家参考,具体实现方法如下:

  1. // Returns the next higher or lower number 
  2. function NextRelatedNumber($number, $range){   
  3.   $r = $number % $range; 
  4.   $f = $number - $r; 
  5.   $b = round($r / $range, 0); 
  6.   return ($b == 1) ? $f + $range : $f;   
  7. } 
  8. // Returns the next higher number 
  9. function NextHigherNumber($number, $range){   
  10.   $r = $number % $range; 
  11.   $f = $number - $r; 
  12.   $b = ceil($r / $range); 
  13.   return ($b == 1) ? $f + $range : $f;   
  14. } 
  15. // Returns the next lower number 
  16. function NextLowerNumber($number, $range){   
  17.   $r = $number % $range; 
  18.   $f = $number - $r; 
  19.   $b = floor($r / $range); 
  20.   return ($b == 1) ? $f + $range : $f;   
  21. } 
  22. // Returns the next related number from an array 
  23. function NextNumberArray($Number, $NumberRangeArray){ 
  24.   $w = 0; 
  25.   $c = -1; 
  26.   $abstand = 0; 
  27.   $l = count($NumberRangeArray);     
  28.   for($pos=0; $pos < $l; $pos++){ 
  29.     $n = $NumberRangeArray[$pos]; 
  30.     $abstand = ($n < $Number) ? $Number - $n : $n - $Number; 
  31.     if ($c == -1){ 
  32.       $c = $abstand; 
  33.       continue; 
  34.     } 
  35.     else if ($abstand < $c){ 
  36.       $c = $abstand; 
  37.       $w = $pos; 
  38.     } 
  39.   } 
  40.   return $NumberRangeArray[$w]; 
  41. } 
  42.    
  43. // Examples 
  44. // -------- 
  45. // 0 10 20 30 40 50 ... 
  46. print 'NextRelatedNumber: '; 
  47. print NextRelatedNumber(44, 10) . "\n"; 
  48. // returns --> 40 
  49. // 0 20 40 60 80 100 ... 
  50. print 'NextHigherNumber: '; 
  51. print NextHigherNumber(41, 20) . "\n"; 
  52. // returns --> 60 
  53. // 0 5 10 15 20 25 30 35 ... 
  54. print 'NextLowerNumber: '; 
  55. print NextLowerNumber(57, 5) . "\n"; 
  56. // returns --> 55 
  57. // Example with Array 
  58. print 'NextNumberArray: '; 
  59. print NextNumberArray(45, array(3, 8, 19, 34, 56, 89)) . "\n"; 
  60. // returns --> 34 
  61. // (45 is between 34 and 56 but 34 is the next) 

希望本文所述对大家的php程序设计有所帮助。

Tags: php获取指定范围数

分享到: