You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何像分页一样对数据分类?实现分页式内容列表展示

实现文章/页面/产品的分页列表展示

需求说明

  • 将文章、页面、产品类内容按每10条一组进行分页展示
  • 示例:若有55条内容,将分为5页:第1-4页各10条,第5页5条;50条内容则刚好分为5页,每页10条

PHP实现示例代码

<?php
// 各类内容的总数量
$total_posts = 50;    // 文章总数
$total_pages = 85;    // 页面总数
$total_products = 123;// 产品总数

// 模拟各类内容的完整数据(实际项目中可从数据库获取)
$data = '{
    "post": [' . implode(',', array_map(function($i){return '"post-' . $i . '"';}, range(1, $total_posts))) . '],
    "page": [' . implode(',', array_map(function($i){return '"page-' . $i . '"';}, range(1, $total_pages))) . '],
    "product": [' . implode(',', array_map(function($i){return '"product-' . $i . '"';}, range(1, $total_products))) . ']
}';
$data = json_decode($data, true);

// 定义需要处理的内容类型
$post_types = ['post', 'page', 'product'];
// 每页显示数量
$per_page = 10;

// 遍历处理每种内容类型的分页
foreach ($post_types as $type) {
    echo '<h3>' . ucfirst($type) . ' 分页展示</h3>';
    $total_items = ${"total_{$type}s"};
    // 计算总页数
    $total_pages_count = ceil($total_items / $per_page);
    
    // 遍历每一页
    for ($page = 1; $page <= $total_pages_count; $page++) {
        echo '<p><strong>第' . $page . '页</strong>(共' . min($per_page, $total_items - ($page-1)*$per_page) . '条):</p>';
        echo '<ul>';
        // 计算当前页的起始和结束索引
        $start = ($page - 1) * $per_page;
        $end = min($start + $per_page, $total_items);
        // 输出当前页的内容
        for ($i = $start; $i < $end; $i++) {
            echo '<li>' . $data[$type][$i] . '</li>';
        }
        echo '</ul>';
    }
}
?>

代码说明

  1. 先定义各类内容的总数量,模拟生成对应的数据列表(实际项目中可替换为数据库查询结果)
  2. 设置每页显示10条,计算每种内容类型的总页数
  3. 遍历每一页,计算当前页的内容范围,输出对应条目的列表
  4. 自动处理最后一页不足10条的情况

内容的提问来源于stack exchange,提问作者Amir Alam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 20:43:30