$mostmatched = function( $input to test, $array with given values)
数组包含不同的数字(10,30,50 ...),我给出一个输入(13),所需的函数应该返回数组中最接近的值(10)。
是否已经有这样的功能?另外:有任何建议如何实现吗?
答案 0 :(得分: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。
或者,只需循环遍历数组,跟踪最后的最小差异,如果找到较小的差异则替换它。我将把它的实现作为读者的练习。