網頁

2014年5月6日

[php] 同時多個數字做區間檢查

假設有一個或是多個數字,需要檢查是否介於兩個值之間,可以採用此方式進行檢查。

程式範例:
<?php
//數字40是否介於38~65之間
var_dump(between(38, 65, 40));  //輸出結果:bool(true)

//數字65是否介於38~65之間
var_dump(between(38, 65, 65));  //輸出結果:bool(true)

//數字33,20,48是否介於10~48之間
var_dump(between(10, 48, array(33,20,48)));  //輸出結果:bool(true)
//也可以直接帶入字串
var_dump(between(10, 48, "33,20,48"));


function between($min, $max, $value)
{
 //處理成陣列
 if (is_array($value)){
  $limit = $value;
 }else{
  $limit = explode(",", $value);
 }
 //合併成多個數值
 $value = array_merge($limit, $limit);

 $limit[] = $max;
 $limit[] = $min;

 //使用max及min函數判斷是否在區間內
 if ((max($limit) == $max && min($limit) == $min) || (max($value) == $max && min($value) == $min)){
  $result = true;
 }else{
  $result = false;
 }

 return $result;
}
?>