php массив ближайшие [требует правки]

296
20 января 2017, 10:01

Есть массив:

Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)

Нужна красивая функция, которая будет возвращать:

  • При параметре 8 - массив Array(6, 7, 8, 9, 10),
  • При параметре 12 - массив Array(10, 11, 12, 13, 15),
  • При параметре 1 - массив Array(1, 2, 3, 4, 5),
  • При параметре 2 - массив Array(1, 2, 3, 4, 5),
  • При параметре 15 - массив Array(11, 12, 13, 14, 15),
  • При параметре 14 - массив Array(11, 12, 13, 14, 15)
Answer 1

эмм

function returnClosest($array, $position, $offset = 2){
    $position--;
    if(($position + $offset * 2 + 1) > count($array)){
        $position = count($array) - ($offset + 1);//10 - 2
    }
    return array_slice($array, $position - $offset, $offset * 2 + 1);
}
$arr = array(1,2,3,4,5,6,7,8,9,0);
var_dump(returnClosest($arr, 10));
var_dump(returnClosest($arr, 5));
var_dump(returnClosest($arr, 1));
//Получаем результаты, приведенные ниже

array(5) ( 6, 7, 8, 9, 0 )
array(5) ( 3, 4, 5, 6, 7 )
array(5) ( 1, 2, 3, 4, 5 )

READ ALSO
Как извлечь счётчик массива из $smarty в php

Как извлечь счётчик массива из $smarty в php

Ковыряюсь со старым движком ShopScriptНа странице есть цикл

301
Почему исчезает модуль ?=

Почему исчезает модуль ?=

Когда захожу на сайт в первый раз в адресной строке отображается id пользователя, Но когда обновляю страницу или перехожу по другой ссылке,...

294
Читабельность кода ветвления на PHP

Читабельность кода ветвления на PHP

Есть один и тот же функционал, реализованный разными инструментамиКакой вариант, на ваш взгляд проще читать? На выходе один из вариантов...

268
SimpleSearch modx

SimpleSearch modx

есть такая структура ресурсов в админке

285