У меня есть массив. Учитывая число X (которое не должно содержаться в массиве), я хочу искать как следующее большее, так и следующее меньшее число X в массиве в одном цикле. Мой код:Найти ближайший более высокий и более низкий номер в массиве в цикле
<?php
$a = array(1, 8, 23, 25, 40,41,42,47, 52, 55, 66, 74,75, 76,77,78, 95, 102,103, 104, 105,106, 126, 128, 140,);
$v = 104;
sort($a);
$nearestGreater = null;
$nearestLower = null;
foreach ($a as $key => $val) {
if ($v<=$val) {
$nearestGreater = (isset($a[$key + 1])) ? $a[$key + 1]: $nearestGreater;
$nearestLower = (isset($a[$key - 1])) ? $a[$key - 1]: $nearestLower;
break;
}
}
var_dump($nearestLower);
echo "<br/>".$v."<br/>";
var_dump($nearestGreater);
unset($a);
?>
thnks для ответа bt я хочу две итерации –
Что вы подразумеваете под буксирными итерациями? – Mahmoud
Я хочу два результата, например, если $ v = 104; –