确定最近的数字?

时间:2018-12-05 05:35:41

标签: php

给定这个数组:

$stack = [ 100, 200, 300, 400, 500, 600, 700 ]

给定任意数字(例如$needle = 78)从堆栈中查找“最近”数字的最佳方法是什么。在这种情况下,它将是100。

我想到了算法,我在其中遍历所有数字,并最终确定了它。

但这出于某种原因,就像它有一些不错的衬板解决方案,我只是不知道。那我的感觉正确吗,有这样的衬里吗?

1 个答案:

答案 0 :(得分:0)

只需创建一个函数即可检查值,例如:

function findClose($needle, $stack) {
   $close= null;
   foreach ($arr as $value) {
     if ($close == null) {
          $close = $value;
     }

     if ( !is_null( $close ) && abs($value - $close) > abs($value - $search)) {
       $close= $value;
     }
  }
  return $close;
}

并使用您的值调用此函数。

echo findClose(160, $stack);

将为您提供所需的结果。

希望有帮助。