Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как разбить массив на страницы

Короткий ответ

array_slice() берёт нужную порцию: смещение — номер страницы минус один, умноженный на размер страницы:

<?php
 
$items = range(1, 23);
$page = 3;
$perPage = 5;
 
echo implode(', ', array_slice($items, ($page - 1) * $perPage, $perPage));

Результат:

11, 12, 13, 14, 15

Сколько всего страниц

Разделите количество на размер страницы и округлите вверх:

<?php
 
$items = range(1, 23);
 
echo (int) ceil(count($items) / 5);

Результат:

5

Данные из базы

Так разбивают только небольшие массивы. Записи из базы данных режут самим запросом — LIMIT и OFFSET, — чтобы не загружать в память всю таблицу.

Функции из этого ответа

  • array_slice — Возвращает часть массива.
  • ceil — Округляет число вверх до целого.
  • count — Возвращает количество элементов массива.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.