给定这个数组:
$stack = [
100,
200,
300,
400,
500,
600,
700
]
给定任意数字(例如$needle = 78
)从堆栈中查找“最近”数字的最佳方法是什么。在这种情况下,它将是100。
我想到了算法,我在其中遍历所有数字,并最终确定了它。
但这出于某种原因,就像它有一些不错的衬板解决方案,我只是不知道。那我的感觉正确吗,有这样的衬里吗?
答案 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);
将为您提供所需的结果。
希望有帮助。