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>";