php擷取指定範圍內最接近數的方法_php技巧

來源:互聯網
上載者:User

本文執行個體講述了php擷取指定範圍內最接近數的方法。分享給大家供大家參考。具體實現方法如下:

// Returns the next higher or lower numberfunction NextRelatedNumber($number, $range){    $r = $number % $range;  $f = $number - $r;  $b = round($r / $range, 0);  return ($b == 1) ? $f + $range : $f;  }// Returns the next higher numberfunction NextHigherNumber($number, $range){    $r = $number % $range;  $f = $number - $r;  $b = ceil($r / $range);  return ($b == 1) ? $f + $range : $f;  }// Returns the next lower numberfunction 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 arrayfunction 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];} // Examples// --------// 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// Example with Arrayprint '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)

希望本文所述對大家的php程式設計有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.