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

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

Tags: php获取指定范围数

分享到: