Angenommen, wir haben ein Array, das alle Artikel in einer bestimmten Kategorie enthält. Der Kern von Paging besteht darin, das entsprechende Datenfragment aus dem Array basierend auf der aktuellen Seitennummer und der Anzahl der auf jeder Seite angezeigten Teile abzufangen.
Die Paging -Parameter umfassen normalerweise:
$ Seite : Aktuelle Seitennummer
$ pageSize : Anzahl der pro Seite angezeigten Artikel
$ offset : offset, berechnet als ($ Seite - 1) * $ pageSize
Mit Array_Slice können wir $ pagesize -Artikel einfügen, die mit $ offset aus dem Artikel -Array beginnen, um eine Paginierung zu erreichen.
Im Folgenden finden Sie ein einfaches Beispiel, das zeigt, wie die Artikelklassifizierungspagination mit Array_Slice implementiert wird.
<?php
// Simulieren Sie alle Artikel -Arrays in Kategorien
$articles = [
['id' => 1, 'title' => 'Artikel 1', 'category' => 'Wissenschaft und Technologie'],
['id' => 2, 'title' => 'Artikel 2', 'category' => 'Wissenschaft und Technologie'],
['id' => 3, 'title' => 'Artikel 3', 'category' => 'Leben'],
['id' => 4, 'title' => 'Artikel 4', 'category' => 'Wissenschaft und Technologie'],
['id' => 5, 'title' => 'Artikel 5', 'category' => 'Leben'],
['id' => 6, 'title' => 'Artikel 6', 'category' => 'Wissenschaft und Technologie'],
['id' => 7, 'title' => 'Artikel 7', 'category' => 'Wissenschaft und Technologie'],
];
// Wählen Sie eine Kategorie aus
$category = 'Wissenschaft und Technologie';
// Aktuelle Artikel herausfiltern
$categoryArticles = array_filter($articles, function ($article) use ($category) {
return $article['category'] === $category;
});
// Den Index wieder aufbauen,Einfach zu bedienen array_slice
$categoryArticles = array_values($categoryArticles);
// Aktuelle Seitennummer,aus URL Erhalten,Standard 1 Seite
$page = isset($_GET['page']) ? max(1, intval($_GET['page'])) : 1;
// 每Seite显示文章数
$pageSize = 3;
// Offset berechnen
$offset = ($page - 1) * $pageSize;
// 截取当前Seite的文章
$currentPageArticles = array_slice($categoryArticles, $offset, $pageSize);
// 输出当前Seite文章
foreach ($currentPageArticles as $article) {
echo "<h3>" . htmlspecialchars($article['title']) . "</h3>";
}
?>
Die Pagination muss nicht nur Inhalte anzeigen, sondern auch den Benutzern Navigation zum Wechseln von Seiten bieten. Die Gesamtzahl der Seiten kann basierend auf der Gesamtzahl der Artikel berechnet werden, und die verführten Links können dynamisch generiert werden.
<?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> ";
}
}
?>
Hier verwenden wir http://gitbox.net als Beispieldomänennamen, den Sie entsprechend der tatsächlichen Situation ersetzen können.
Unter Verwendung von PHPs Array_Slice -Funktion ist es sehr bequem, Paging von Array -Daten zu implementieren, die für die Paging -Anzeige klassifizierter Artikel geeignet sind. Der Schlüssel besteht darin, den Offset korrekt zu berechnen und das Array nach der Klassifizierungsfilterung zu schneiden. In Verbindung mit einer einfachen Paginationsnavigation können die meisten CMSS für die Artikelklassifizierungspaginierung erfüllt werden.
Diese Methode stützt sich nicht auf Datenbankpaging und eignet sich für Szenarien, in denen Daten klein sind oder Daten in ein Array vorgeladen wurden. Für große Datenmengen wird empfohlen, Pagination -Abfrage der Datenbank zu verwenden, um die Effizienz zu verbessern.