3v4l.org

run code in 300+ PHP versions simultaneously
<?php function toValid($var) { return strtotime(str_replace('.', ':', sprintf('%.2f', $var))); } function getNearest($arr, $var) { $given = toValid($var); $array = array_map('toValid', $arr); $distance = PHP_INT_MAX; $index = -1; for ($c = 0; $c < count($array); $c++) { $c_distance = $array[$c] - $given; if ($c_distance > 0 && $distance > $c_distance) { $distance = $c_distance; $index = $c; } } return $index < 0 ? $var : $array[$index]; } echo date('H.i', getNearest([14.49, 17.57, 12.30, 19.22], '13.30')); echo "\n"; echo date('H.i', getNearest([14.49, 17.57, 12.30, 19.22], '12.30')); echo "\n"; echo date('H.i', getNearest([14.49, 17.57, 12.30, 19.22], '18.30')); echo "\n";
Output for 7.2.0 - 7.2.34, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.27, 8.2.0 - 8.2.17, 8.3.0 - 8.3.4
14.49 14.49 19.22

preferences:
205.17 ms | 403 KiB | 187 Q