當前位置: 首頁> 最新文章列表> 利用array_slice 實現數組分頁導航邏輯

利用array_slice 實現數組分頁導航邏輯

gitbox 2025-05-29

在Web 開發中,分頁是常見的功能之一。無論是展示文章列表、產品目錄還是用戶評論,為了避免一次性加載過多數據導致頁面加載緩慢,分頁都是一種高效的解決方案。

PHP 提供了一個非常實用的函數array_slice() ,它可以方便地從數組中提取出一部分元素。結合這個函數,我們可以輕鬆地實現一個基礎的數組分頁導航功能。本文將帶你一步一步實現它。

一、理解array_slice 函數

array_slice()的基本語法如下:

 array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array
  • $array :原始數組

  • $offset :開始位置(從0 開始)

  • $length :可選參數,返回的元素數量

  • $preserve_keys :是否保留原來的鍵名,默認為false

二、示例數據

假設我們有一個包含若干文章標題的數組:

 $articles = [
    "文章一", "文章二", "文章三", "文章四", "文章五",
    "文章六", "文章七", "文章八", "文章九", "文章十"
];

我們希望每頁顯示3 篇文章。

三、分頁邏輯實現

首先,我們需要知道當前是第幾頁,然後根據頁碼計算出對應的偏移量。

 <?php
$articles = [
    "文章一", "文章二", "文章三", "文章四", "文章五",
    "文章六", "文章七", "文章八", "文章九", "文章十"
];

$perPage = 3;
$totalArticles = count($articles);
$totalPages = ceil($totalArticles / $perPage);

// 獲取當前頁碼
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
if ($page < 1) $page = 1;
if ($page > $totalPages) $page = $totalPages;

// 計算當前頁的偏移量
$offset = ($page - 1) * $perPage;

// 使用 array_slice 獲取當前頁的數據
$currentPageArticles = array_slice($articles, $offset, $perPage);
?>

四、顯示分頁內容

接著,我們將當前頁的數據輸出到頁面中:

 <ul>
<?php foreach ($currentPageArticles as $article): ?>
    <li><?php echo htmlspecialchars($article); ?></li>
<?php endforeach; ?>
</ul>

五、生成分頁導航鏈接

我們還需要在頁面底部添加翻頁鏈接:

 <div class="pagination">
    <?php if ($page > 1): ?>
        <a href="https://gitbox.net/pagination.php?page=<?php echo $page - 1; ?>">上一頁</a>
    <?php endif; ?>

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

    <?php if ($page < $totalPages): ?>
        <a href="https://gitbox.net/pagination.php?page=<?php echo $page + 1; ?>">下一頁</a>
    <?php endif; ?>
</div>

六、小結

通過array_slice()和一些基礎的分頁邏輯,我們就可以為任意的數組內容添加分頁功能。這種方式適用於數據量不大、無需數據庫操作的場景,比如靜態內容列表、緩存中的數據或配置項展示等。對於更大規模的數據,建議使用數據庫的LIMIT子句進行分頁查詢。

掌握array_slice() ,是你構建高效PHP 應用的重要一步。希望本文對你有所幫助!