例如我有数组:
Array(
[0] => 15
[1] => 6
[2] => 19
[3] => 21
[4] => 18
)
如果当前时间是20,那么我需要值19(小于且接近20)
同样,如果我将X数字传递为17,它将从数组中返回15。
如果是7那么它应该返回6.
请建议如何使用PHP实现这一目标?
谢谢!
答案 0 :(得分:1)
您可以使用array_filter
和end
功能创建自定义功能,如
function find_closest($arr,$x){
sort($arr);
$filtered_array = array_filter($arr,function($v)use($x){
return $v < $x;
});
return count($filtered_array) > 0 ? end($filtered_array) : "Your Message";
}
echo find_closest($arr,17);
答案 1 :(得分:1)
我会按照以下方式进行。我认为这比接受的答案更清洁(也可能更快):
function closest($arr, $x) {
$result = "default";
sort($arr);
foreach($arr as $value) {
if($value < $x) {
$result = $value;
} else
break;
}
return $result;
}
答案 2 :(得分:0)
在阵列中推送您要查找的元素。
array_push($your_array, "17");
$arr = asort($your_array);
$key = array_search('17', $arr);
该值将在 $ arr [$ key-1] 中。 希望这会帮助你。