Top.Mail.Ru
Ответы
Аватар пользователя
8лет
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+3

PHP. Разбить массив на куски и вывести на экран в разных дивах.

ИЗ бд прилетает массив с данными порядка 100 строк, и записывается в переменную, далее с помощью foreach данные из переменной показываются в блоке. Всё бы хорошо, но получается один блок div с сотней строк внутри, то есть очень длинный. Как сделать, чтобы в одном блоке показывались данные из массива от 1 до 10, во втором - от 11 до 20 и т д ?
Хочу сделать так, чтобы потом скрыть лишние блоки и показывать их по нажатию кнопки. Или есть какие-то варианты получше?

По дате
По рейтингу
Аватар пользователя
Мастер
8лет

Если оставить перебор массива через foreach, то внутри после каждого десятого (признак делимости на 10) рисовать закрытие и открытие дива.
Примерно так:
echo 'div (тэг)';
$i = 1;
foreach($array as $arr) {
....
if($i % 10 = 0) {
echo '/div div (закрытие и открытие дива)';
}
$i++;
}
echo '/div закрытие дива';

Получится, что по 10 будут запихиваться в див, если останется меньше 10 на последний виток, то они тоже пойдут в контейнер

Аватар пользователя
8лет

сделать постраничный вывод и не париться, либо при запросе в БД установить лимит в 10 записей.

Аватар пользователя
Гуру
8лет

array_chunk