Web開発では、ページングは一般的な機能の1つです。記事リスト、製品カタログ、またはユーザーのレビューを表示しているかどうかにかかわらず、ページネーションは、一度に過度のデータロードがあるため、ページの読み込みが遅いことを避けるための効率的なソリューションです。
PHPは、非常に実用的な関数Array_Slice()を提供します。これにより、アレイから要素の一部を簡単に抽出できます。この関数を組み合わせることで、基本的な配列ページングナビゲーション機能を簡単に実装できます。この記事では、段階的に実装します。
array_slice()の基本的な構文は次のとおりです。
array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array
$配列:元の配列
$ offset :開始位置(0から開始)
$の長さ:オプションのパラメーター、返される要素の数
$ preserve_keys :元のキー名を保持するかどうか、デフォルトでfalse
いくつかの記事タイトルを含む配列があるとします。
$articles = [
"第1条", "第2条", "第3条", "第4条", "第5条",
"第6条", "第7条", "第8条", "第9条", "第10条"
];
ページごとに3つの記事を表示したいと考えています。
まず、現在どのページを使用しているかを知り、ページ番号に基づいて対応するオフセットを計算する必要があります。
<?php
$articles = [
"第1条", "第2条", "第3条", "第4条", "第5条",
"第6条", "第7条", "第8条", "第9条", "第10条"
];
$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()およびいくつかの基本的なページングロジックを使用して、任意の配列コンテンツにページング機能を追加できます。この方法は、データボリュームが小さく、静的コンテンツリスト、キャッシュデータ、構成アイテムディスプレイなど、データベース操作が不要なシナリオに適しています。ページネーションクエリには、データベースの制限節を使用することをお勧めします。
Array_sliceのマスタリングは、効率的なPHPアプリケーションを構築する上で重要なステップです。この記事があなたに役立つことを願っています!