当前位置:首页 > PHP

php数组实现分页

2026-02-16 11:53:38PHP

使用 array_slice 函数实现分页

PHP 的 array_slice 函数可以截取数组的一部分,非常适合用于分页。需要计算起始位置和每页显示的数量。

$currentPage = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$itemsPerPage = 10;
$start = ($currentPage - 1) * $itemsPerPage;
$pagedData = array_slice($originalArray, $start, $itemsPerPage);

计算总页数

在分页时需要显示总页数,可以通过数组总数和每页数量计算得出。

$totalItems = count($originalArray);
$totalPages = ceil($totalItems / $itemsPerPage);

生成分页链接

为方便用户导航,通常需要生成分页链接。可以动态生成页码链接。

for ($i = 1; $i <= $totalPages; $i++) {
    echo "<a href='?page=$i'>$i</a> ";
}

处理边界情况

需要考虑用户输入的页码超出范围的情况,防止出现错误。

$currentPage = max(1, min($currentPage, $totalPages));

完整示例代码

将上述代码整合为一个完整的分页示例。

$originalArray = range(1, 100); // 示例数组
$currentPage = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$itemsPerPage = 10;

$totalItems = count($originalArray);
$totalPages = ceil($totalItems / $itemsPerPage);
$currentPage = max(1, min($currentPage, $totalPages));

$start = ($currentPage - 1) * $itemsPerPage;
$pagedData = array_slice($originalArray, $start, $itemsPerPage);

foreach ($pagedData as $item) {
    echo $item . "<br>";
}

for ($i = 1; $i <= $totalPages; $i++) {
    echo "<a href='?page=$i'>$i</a> ";
}

使用自定义函数封装

为了提高代码复用性,可以将分页逻辑封装为函数。

function paginateArray($array, $itemsPerPage = 10, $currentPage = 1) {
    $totalItems = count($array);
    $totalPages = ceil($totalItems / $itemsPerPage);
    $currentPage = max(1, min($currentPage, $totalPages));

    $start = ($currentPage - 1) * $itemsPerPage;
    return array_slice($array, $start, $itemsPerPage);
}

$pagedData = paginateArray($originalArray);

添加样式美化分页导航

可以使用 CSS 为分页链接添加样式,提升用户体验。

echo '<div class="pagination">';
for ($i = 1; $i <= $totalPages; $i++) {
    $active = $i == $currentPage ? 'active' : '';
    echo "<a class='$active' href='?page=$i'>$i</a>";
}
echo '</div>';

对应的 CSS 样式示例:

php数组实现分页

.pagination a {
    padding: 8px 16px;
    text-decoration: none;
    border: 1px solid #ddd;
    margin: 0 4px;
}
.pagination a.active {
    background-color: #4CAF50;
    color: white;
    border: 1px solid #4CAF50;
}

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

相关文章

vue  实现分页

vue 实现分页

实现分页功能 在Vue中实现分页功能通常需要结合后端API或前端数据处理。以下是两种常见的实现方式: 前端分页实现 适用于数据量较小的情况,所有数据一次性加载到前端后进行分页处理: <tem…

php分页功能的实现

php分页功能的实现

分页功能的基本原理 分页功能的核心是通过SQL的LIMIT子句实现数据分段查询。LIMIT接受两个参数:起始位置偏移量和每页记录数。例如查询第2页(每页10条)的SQL语句为: SELECT * F…

vue page 实现分页

vue page 实现分页

实现 Vue 分页功能的方法 使用 Element UI 的分页组件 安装 Element UI 后,可以直接使用 el-pagination 组件实现分页功能。 <template>…

vue完整实现分页

vue完整实现分页

Vue 分页组件实现 分页组件模板 分页组件通常包含页码按钮、上一页/下一页按钮和跳转功能。以下是一个基础模板结构: <template> <div class="pagina…

vue实现分页缩进

vue实现分页缩进

vue实现分页缩进的方法 使用v-for和计算属性实现分页 通过计算属性对数据进行分页处理,结合v-for渲染分页数据。计算属性根据当前页码和每页显示数量对原始数据进行切片。 computed: {…

vue实现数组倒叙

vue实现数组倒叙

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