PHP: Постраничная навигация - вывод данных с использованием массива

Разбиение на страницы в PHP это тема, которая описана во многих учебниках, и поэтому весьма насыщенна. Я не собираюсь вносить абсолютно новые концепции, но в данной статье я объясню, как можно использовать разбиение на страницы для данных, хранящихся в массиве.

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

Посмотрим на код, в котором показано как это можно сделать.

Для начала я создал массив $data, который содержит длинный набор элементов, разделенных символом вертикальной черты '|'. Элементы приведены в качестве примера, массив должен содержать реальные данные. Затем с помощью функции explode() я разбил переменную $data на массив, используя '|' в качестве разделителя.

Строка 6 просто получает номер текущей страницы, если он передан.

Строки с 8 по 13 выполняют математические расчеты, которые требуются, чтобы разбиение на страницы работало. Сначала мы устанавливаем количество элементов, отображаемых на странице, в переменной $perPage. В вышеприведенном примере я установил данное значение равным 3.

В строке 9 мы просто выясняем, сколько страниц должно быть. Это можно сделать путем деления общего количества элементов (с помощью функции count()) на количество элементов на странице. Обратите внимание, что в этой строке я также использую функцию ceil(). Функция просто округляет число до большего целого (например, 5,134 становится 6).

В строках 10 и 11 находится простой условный оператор, который устанавливает в 0 номер страницы, если он не был передан или номер страницы больше общего количества страниц. Это предотвращает доступ к страницам, для которых нет элементов.

Ценные советы и основы маркетинга в социальных сетях Вы найдете на pricesmm.com. Здесь представлен широкий спектр различной информации о том, как платно или бесплатно продвигать свои аккаунты, научиться не только быть популярным в сети, но и получать от этого стабильный и внушительный доход.

В строках 12 и 13 устанавливаем переменные $start и $end, которые вы могли узнать, если работали с SQL запросами раньше. Переменные $start и $end содержат наименьший и наибольший идентификатор элемента, который должен отображаться на данной странице.

Теперь в строке 15 обрабатываем каждый элемент данных в цикле foreach. Внутри цикла условный оператор проверяет, что идентификатор текущего элемента данных больше или равен значению $start и меньше значения $end. Если условие выполняется, то записываем копию элемента в массив $pagedData.

После завершения цикла foreach массив $pagedData содержит все элементы, которые должны отображаться на текущей странице. Теперь нужно вывести элементы с помощью цикла, как показано в следующем фрагменте кода.

Теперь, всё что осталось сделать, это отобразить страничные ссылки для перехода между страницами.

Приведенный выше фрагмент кода состоит из двух простых операторов if, которые отображают ссылки на предыдущую и следующую страницы.

Первый оператор if проверяет, что текущая страница больше 0 (на первой странице не должно быть ссылки на предыдущую страницу) и меньше общего количества страниц (чтобы не отображать страницы без данных).

Второй условный оператор проверяет, что общее число страниц больше номера текущей страницы (и вы не просматриваете последнюю страницу ) и после текущей страницы есть другие.

Просто, не так ли? Это всё, что нужно сделать, чтобы простое разбиение страниц на PHP работало.