最匹配的数组值

时间:2014-09-26 18:48:01

标签: php function

$mostmatched = function( $input to test, $array with given values)

数组包含不同的数字(10,30,50 ...),我给出一个输入(13),所需的函数应该返回数组中最接近的值(10)。

是否已经有这样的功能?另外:有任何建议如何实现吗?

1 个答案:

答案 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

或者,只需循环遍历数组,跟踪最后的最小差异,如果找到较小的差异则替换它。我将把它的实现作为读者的练习。