3v4l.org

run code in 300+ PHP versions simultaneously
<?php function getNearestMatch($number) { $arr = array_values([2, 4,4, 8, 16,16, 23]); sort($arr); $key = 0; while(isset($arr[$key+1]) && $arr[$key] < $number) $key++; if($arr[$key] == $number || !isset($arr[$key-1]) || $arr[$key] - $number < $number - $arr[$key-1]) return $arr[$key]; else return $arr[$key-1]; } //To test it we pass some values to the function foreach([0, 2, 3, 4, 8, 12, 22, 23, 24] as $v) echo getNearestMatch($v) . PHP_EOL;

preferences:
40.45 ms | 402 KiB | 5 Q