Нужно сформировать массив из номеров страниц с пропусками, по типу: Переменные на входе: Кол-во страниц документа: >13. Текущая страница: 7 На выходе: Array("1", "2", "3", "...", "5", "6", "7", "8", "9", "...", "11", "12", "13") ну а в браузере этот массив я выведу как ссылки на страницы. :!: Краевые: Кол-во страниц документа: >13. Текущая страница: 1 На выходе: Array("1", "2", "3", "...", "11", "12", "13"). Кароче смысл такой: обязательно отобразить первые три и последние три страницы. Также отобразить текущую страницу и, если они есть, то две предыдущие и две последующие. Назначение всего этого - навигация по многостраничному документу. Для наглядности пара примеров того что я хочу: 1,2,3, ... ,45,46,47,48,49, ... ,98,99,100 1,2,3,4,5,6, ... ,98,99,100 1,2,3, ... ,98,99,100 1,2,3, ... ,93,94,95,96,97,98,99,100
предлагаю не мудрить а написать что-то вроде: $p= array(); $p[1]="?page=1"; $p[2]="?page=2"; $p[3]="?page=3"; $p[$max]="?page=".$max; $p[$max-1]="?page=".($max-1); $p[$max-2]="?page=".($max-2); $p[$current]="?page=".$current; $p[$current+1]="?page=".$current+1; $p[$current+2]="?page=".$current+2; $p[$current-1]="?page=".$current-1; $p[$current-2]="?page=".$current-2; ессно заполнять массив лучше в цикле ну а потом через foreach всё это дело выводишь. если индекс следующего минус индекс предыдущего больше 1, то перед выводом ставишь многоточие.
$current+1, $current+2, $current-1, $current-2 - значения заключить в скобки. После получившийся массив отсортировать. В цикле foreach обязательно условие на проверку принадлежности интервалу [1 ... $max]. И тогда получится то, что мне нужно. dark-demon, спасибо. Задача решена.
если правильно заполнять, то сортировать не нужно проверку на принадлежность интервалу лучше при заполнении и делать, либо циклы организовать так, чтобы значения не вылезали за пределы.