當前位置: 首頁> 最新文章列表> 用array_slice 實現分頁功能的簡單示例

用array_slice 實現分頁功能的簡單示例

gitbox 2025-05-26

什麼是array_slice

array_slice是PHP 內置的一個函數,用於從數組中取出一段連續的元素。它的基本語法是:

 array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array
  • $array :需要截取的數組

  • $offset :起始位置,0 表示從第一個元素開始

  • $length :截取的長度,如果不指定則默認截取到數組末尾

  • $preserve_keys :是否保持原數組的鍵名,默認為false


利用array_slice實現分頁

假設我們有一個數組,裡麵包含了100 條數據,現在要實現每頁顯示10 條數據的分頁功能。

1. 計算分頁參數

  • 當前頁碼$page (從1 開始)

  • 每頁顯示條數$pageSize

  • 計算數組截取起點$offset = ($page - 1) * $pageSize

2. 截取當前頁的數據

通過array_slice從數組中截取當前頁的數據即可。


示例代碼

<?php
// 模擬數據數組
$data = range(1, 100); // 生成包含 1 到 100 的數字數組

// 獲取當前頁碼,默認是第 1 頁
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$page = max($page, 1); // 确保頁码不小于 1

// 每頁显示多少条
$pageSize = 10;

// 計算偏移量
$offset = ($page - 1) * $pageSize;

// 用 array_slice 截取当前頁的数据
$pageData = array_slice($data, $offset, $pageSize);

// 输出当前頁的数据
foreach ($pageData as $item) {
    echo "數據項:$item<br>";
}

// 生成分頁链接
$totalPages = ceil(count($data) / $pageSize);

echo "<div>";
for ($i = 1; $i <= $totalPages; $i++) {
    if ($i == $page) {
        echo "<strong>$i</strong> ";
    } else {
        echo "<a href=\"https://gitbox.net/page.php?page=$i\">$i</a> ";
    }
}
echo "</div>";
?>

運行效果

訪問page.php?page=1會顯示第1 頁的10 條數據,訪問page.php?page=2則顯示第2 頁的內容,依次類推。


小結

使用PHP 的array_slice函數結合簡單的分頁計算,可以非常方便地實現數組的分頁功能。雖然實際開發中分頁數據通常來自數據庫,但對於小型數據集或者緩存數據, array_slice是非常輕量且高效的方案。

記住,關鍵點在於計算正確的偏移量$offset ,和控制每頁顯示的條數$pageSize ,這樣就能輕鬆實現分頁效果。