PHP implementation returns the number closest to the current number

WBOY
Release: 2016-07-25 08:58:31
Original
1088 people have browsed it
This article introduces how to use PHP to return the number closest to the current number. The code is not complicated and is suitable for learning and reference.

Achieve the following functions: Returns the previous and next closest number in a specified range.

The code is as follows:

<?php
/**
* 返回离当前数字最近的数
* edit bbs.it-home.org
*/
function NextRelatedNumber($number, $range){   
    $r = $number % $range;
    $f = $number - $r;
    $b = round($r / $range, 0);
  
    return ($b == 1) ? $f + $range : $f;   
}
  
// Returns the next higher number
function NextHigherNumber($number, $range){   
    $r = $number % $range;
    $f = $number - $r;
    $b = ceil($r / $range);
  
    return ($b == 1) ? $f + $range : $f;   
}
  
// Returns the next lower number
function NextLowerNumber($number, $range){   
    $r = $number % $range;
    $f = $number - $r;
    $b = floor($r / $range);
  
    return ($b == 1) ? $f + $range : $f;   
}
  
// Returns the next related number from an array
function NextNumberArray($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;
        }
        else if ($abstand < $c){
            $c = $abstand;
            $w = $pos;
        }
    }
  return $NumberRangeArray[$w];
}
  
//调用示例
  
// 0 10 20 30 40 50 ...
print 'NextRelatedNumber: ';
print NextRelatedNumber(44, 10) . "\n";
// returns --> 40
  
// 0 20 40 60 80 100 ...
print 'NextHigherNumber: ';
print NextHigherNumber(41, 20) . "\n";
// returns --> 60
  
// 0 5 10 15 20 25 30 35 ...
print 'NextLowerNumber: ';
print NextLowerNumber(57, 5) . "\n";
// returns --> 55
  
//带数组的例子
print 'NextNumberArray: ';
print NextNumberArray(45, array(3, 8, 19, 34, 56, 89)) . "\n";
// returns --> 34
// (45 is between 34 and 56 but 34 is the next)
?>
Copy after login


source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template