2014-09-26 149 views
-1
$mostmatched = function($input to test, $array with given values) 

該數組包含不同數字(10,30,50 ...),並給出輸入(13),並且所需函數應該返回數組(10)中最接近的值。最匹配的數組值

是否已有這樣的功能?否則:任何建議如何實現?

+0

這可能被回答: [答:最近的值](http://stackoverflow.com/questions/5464919/php-nearest-value-from-an-array) – Rasclatt 2014-09-26 18:52:16

+0

重複的http://計算器.com/questions/5464919/php-nearest-value-from-an-an-an-array – 2014-09-26 19:03:32

+0

sry,所以我搜索了錯誤的關鍵字... – Smeaven 2014-09-26 22:22:32

回答

1
usort($array, function ($a, $b) use ($input) { 
    return abs($input - $a) - abs($input - $b); 
}); 
echo "Closest: $array[0]"; 

換句話說:取$input並且每個值較小差之間的差更接近和排序陣列通過此。如果需要說明,請參閱https://stackoverflow.com/a/17364128/476

或者,只需循環遍歷數組,跟蹤最後一個最小的差異,並在發現較小差異時替換它。我將把這個實現作爲讀者的練習。