PHP Соседние и ближайшие цифры

Коллеги добрый день, сможет кто то подсказать как вывести соседние и ближайшее n - слева и справа по 3 цифры Есть массив

   [0] => 11732
    [1] => 11753
    [2] => 11884
    [3] => 12019
    [4] => 12338
    [5] => 12418

и

   [0] => 11732
    [1] => 11753
    [2] => 11884
    [3] => 12000
    [4] => 12019
    [5] => 12338
    [6] => 12418

при поиске 12000 хотелось бы получить - получается весь указанный массив сверху, как при нахождение числа в массиве, так и без него


Ответы (2 шт):

Автор решения: Алексей Шиманский

Используем array_search для поиска ключа в массиве с указанным значением и если такой ключ есть делаем массиву unset по указанному ключу. Всё.


Можно применить array_filter для выборки только тех элементов, что не равно 12000. Правда тогда потеряется индексация и нужно переиндексировать за счёт array_values. Но то просто как вариант

→ Ссылка
Автор решения: Андрей

Спасибо "участникам", ответ найден

$allNumbers = $array;
sort($allNumbers);
$input = 12000;
$index = array_search($input, $allNumbers);
if(empty($index)){
    foreach($allNumbers as $key => $value){
        if($value < $input){
            $index = ($key + 0.5);
        }else{
            break;
        }
    }
}
$below = array(
    $allNumbers[ceil($index - 2)],
    $allNumbers[ceil($index - 1)],
);

$above = array(
    $allNumbers[floor($index + 1)],
    $allNumbers[floor($index + 2)],
);

echo "<pre>";
print_r(array(
    "input" => $input,
    "index" => $index,
    "below" => $below,
    "above" => $above,
));
echo "</pre>";
→ Ссылка