Алгоритм пагинации?
И что именно Вам кажется некрасивым? Вариант рабочий? Работает без ошибок? Вам наверно больше нет работы кроме как «делать красиво» из стандартного алгоритма пагинации. Если Вам уж очень сильно хочется сделать «красиво» можете заменить один из ифов (который просчитывает страницы) на php.net/manual/en/function.range.php, и фор на implode + array_map. Кода будет меньше, но поверьте, то что у Вас есть сейчас — стандартный код, так пишут почти все, и так проще будет Вам и другим менять его в будуйщем.
Вариант рабочий и написан мною после обнаружения небольшого бага в предыдущем.
Спросил, дабы поставить для себя точку в вопросе и не искать более оптимального варианта. Если получился стандартный код — хорошо.
Спасибо за ответ.