Найти ближайшие число в двумерном массиве
Есть двумерный массив со временем
$mass = array(
array(12.30, 12.39),
array(13.40, 13.59),
array(14.20, 14.30),
array(18.50, 18.55)
);
С помощью функции date('H.i') которая возвращает число с точкой. Нужно найти ближайшие верхние число из массива. То есть, сейчас время 13.20 программа должна вернуть второй массив 13.40 и 13.59.
Ответы (1 шт):
Автор решения: Denis640Kb
→ Ссылка
Вот так можно найти:
Если время в диапазоне - то выведется нужный диапазон.
Если время между диапазонами, то выведется следующий диапазон.
Если время больше, чем введённые диапазоны, то выведется "Время больше не найдено".
$mass = array(
array(12.30, 12.39),
array(13.40, 13.59),
array(14.20, 14.30),
array(18.50, 18.55)
);
$needle = "18.50";
function fing($mass, $needle)
{
for ($i = 0;$i < count($mass); $i++){
if ($needle >= $mass[$i][0] and $needle <= $mass[$i][1]){
return $mass[$i];
} elseif (count($mass) > $i+1){
if($needle > $mass[$i][1] and $needle < $mass[$i+1][0]) {
return $mass[$i];
}
} else{
return 'Время больше не найдено';
}
}
}