現在の位置: ホーム> 最新記事一覧> array_sliceを使用して、記事の分類とページをCMSに実装します

array_sliceを使用して、記事の分類とページをCMSに実装します

gitbox 2025-05-26

1。ページングの原則の簡単な説明

特定のカテゴリのすべての記事を含む配列があるとします。ページングのコアは、現在のページ番号と各ページに表示されるピースの数に基づいて、配列から対応するデータフラグメントを傍受することです。

通常、ページングパラメーターには以下が含まれます。

  • $ページ:現在のページ番号

  • $ Pagesize :ページごとに表示される記事の数

  • $ offset :offset、計算($ page -1) * $ pagesize

Array_sliceを使用して、ページネイアイから$ offsetから始まる$ページサイズの記事を挿入して、ページネーションを実現できます。


2。コードの例

以下は、 array_sliceを使用して記事分類ページネーションを実装する方法を示す簡単な例です。

 <?php
// カテゴリのすべての記事配列をシミュレートします
$articles = [
    ['id' => 1, 'title' => '第1条', 'category' => '科学技術'],
    ['id' => 2, 'title' => '第2条', 'category' => '科学技術'],
    ['id' => 3, 'title' => '第3条', 'category' => '人生'],
    ['id' => 4, 'title' => '第4条', 'category' => '科学技術'],
    ['id' => 5, 'title' => '第5条', 'category' => '人生'],
    ['id' => 6, 'title' => '第6条', 'category' => '科学技術'],
    ['id' => 7, 'title' => '第7条', 'category' => '科学技術'],
];

// カテゴリを選択します
$category = '科学技術';

// 現在の記事を除外します
$categoryArticles = array_filter($articles, function ($article) use ($category) {
    return $article['category'] === $category;
});

// インデックスを再構築します,使いやすい array_slice
$categoryArticles = array_values($categoryArticles);

// 現在のページ番号,から URL 得る,デフォルト 1 ページ
$page = isset($_GET['page']) ? max(1, intval($_GET['page'])) : 1;

// 每ページ显示文章数
$pageSize = 3;

// オフセットを計算します
$offset = ($page - 1) * $pageSize;

// 截取当前ページ的文章
$currentPageArticles = array_slice($categoryArticles, $offset, $pageSize);

// 输出当前ページ文章
foreach ($currentPageArticles as $article) {
    echo "<h3>" . htmlspecialchars($article['title']) . "</h3>";
}
?>

3.ページネーションナビゲーションの簡単な実装

ページネーションはコンテンツを表示するだけでなく、ユーザーにページを切り替えるためのナビゲーションを提供します。ページの総数は、記事の総数に基づいて計算でき、ページングリンクは動的に生成できます。

 <?php
$totalArticles = count($categoryArticles);
$totalPages = ceil($totalArticles / $pageSize);

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

ここでは、 http://gitbox.netをサンプルドメイン名として使用します。これは、実際の状況に応じて置き換えることができます。


4。概要

PHPのarray_slice関数を使用すると、分類された記事のページングに適した配列データのページングを実装するのが非常に便利です。重要なのは、分類フィルタリング後にオフセットを正しく計算し、アレイをスライスすることです。単純なページネーションナビゲーションと相まって、記事分類ページネーションのためのほとんどのCMSSのニーズを満たすことができます。

この方法は、データベースのページングに依存せず、データが小さくなっているか、データが配列にプリロードされているシナリオに適しています。大量のデータについては、データベースのページネーションクエリを使用して効率を向上させることをお勧めします。