当前位置:首页 > PHP

php 数组实现分页

2026-02-16 14:29:27PHP

PHP 数组分页实现方法

在 PHP 中,可以通过数组切片和计算偏移量实现分页功能。以下是两种常见实现方式:

基础数组分页实现

function paginateArray($array, $page, $perPage) {
    $totalItems = count($array);
    $totalPages = ceil($totalItems / $perPage);
    $offset = ($page - 1) * $perPage;

    return [
        'data' => array_slice($array, $offset, $perPage),
        'total' => $totalItems,
        'per_page' => $perPage,
        'current_page' => $page,
        'last_page' => $totalPages
    ];
}

// 使用示例
$dataArray = range(1, 100); // 示例数组
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$perPage = 10;

$result = paginateArray($dataArray, $page, $perPage);

带样式分页链接生成

function generatePaginationLinks($currentPage, $totalPages, $url = '?page=') {
    $links = '';
    $range = 2; // 显示当前页前后页数

    for ($i = 1; $i <= $totalPages; $i++) {
        if ($i == $currentPage) {
            $links .= "<span class='current'>$i</span>";
        } elseif ($i >= $currentPage - $range && $i <= $currentPage + $range) {
            $links .= "<a href='{$url}{$i}'>$i</a>";
        }
    }

    if ($currentPage > 1) {
        $prev = $currentPage - 1;
        $links = "<a href='{$url}{$prev}'>&laquo; 上一页</a>" . $links;
    }

    if ($currentPage < $totalPages) {
        $next = $currentPage + 1;
        $links .= "<a href='{$url}{$next}'>下一页 &raquo;</a>";
    }

    return $links;
}

Laravel 风格分页实现

对于需要更完整分页功能的情况,可以模仿 Laravel 的分页器:

class ArrayPaginator {
    protected $items;
    protected $perPage;
    protected $currentPage;
    protected $total;

    public function __construct($items, $perPage, $currentPage) {
        $this->total = count($items);
        $this->items = array_slice($items, ($currentPage - 1) * $perPage, $perPage);
        $this->perPage = $perPage;
        $this->currentPage = $currentPage;
    }

    public function links() {
        $totalPages = ceil($this->total / $this->perPage);
        return generatePaginationLinks($this->currentPage, $totalPages);
    }

    public function items() {
        return $this->items;
    }
}

使用注意事项

php 数组实现分页

  • 确保页码参数经过验证和类型转换,防止 SQL 注入
  • 对于大型数组,考虑性能问题,可能需要改用数据库分页
  • 前端显示时可以添加 CSS 样式美化分页控件

这些方法提供了从简单到完整的不同实现方案,可根据项目需求选择适合的方式。

标签: 分页数组
分享给朋友:

相关文章

react如何实现分页

react如何实现分页

实现分页的基本思路 在React中实现分页通常需要以下几个核心步骤:管理当前页码状态、计算分页数据、渲染分页控件。以下是一个典型的分页实现方法。 管理分页状态 使用React的useState钩子来…

java如何定义一个数组

java如何定义一个数组

定义数组的基本语法 在Java中,数组是固定长度的同类型数据集合。定义数组需要指定数据类型和数组名称,并可以选择直接初始化或稍后分配空间。 // 声明数组但不初始化 数据类型[] 数组名; //…

vue实现分页打印

vue实现分页打印

实现分页打印的基本思路 在Vue中实现分页打印功能通常需要结合CSS的分页控制属性和JavaScript的打印API。核心是通过CSS的@media print媒体查询和page-break相关属性控…

vue实现数组倒叙

vue实现数组倒叙

实现数组倒序的方法 在Vue中实现数组倒序可以通过多种方式完成,以下是几种常见的方法: 使用JavaScript的reverse()方法 // 在data中定义数组 data() { retu…

vue怎么实现分页

vue怎么实现分页

Vue 分页实现方法 基于 Element UI 的分页组件 Element UI 提供了现成的分页组件 el-pagination,适合快速集成。 安装 Element UI: npm inst…

vue分页的实现

vue分页的实现

Vue 分页的实现方法 使用 Element UI 的分页组件 安装 Element UI: npm install element-ui 在 main.js 中引入: import Elemen…