@alekssamos
Программист любитель

Три первые и последние номера страницы?

Есть условно такой код:
$total_pages=147; /* подсчитывается на основе количества элементов в базе */
for($i = 1; $i <= $total_pages; $i++):
  echo '<a href="?page='.$i.'">'.$i.'</a>';
endfor;

Как сделать, чтобы он выводил так?
1 2 3 ... 135 136 137 ?
Пробовал через вторую переменную, но что-то намудрил - никак не вышло.
  • Вопрос задан
  • 81 просмотр
Пригласить эксперта
Ответы на вопрос 1
mahmudchon
@mahmudchon
$total_pages = 147;
$pages_count = 3;
$last_pages_start = $total_pages - $pages_count;

for($i = 1; $i <= $total_pages; $i++):
    if($i <= $pages_count || $i >= $last_pages_start) {
        echo '<a href="?page='.$i.'">'.$i.'</a>';
    }
    if($i == $pages_count) {
        echo '...';
        $i = $last_pages_start;
    }
endfor;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы