Array_Slice ist eine Funktion in PHP, um Teil eines Arrays abzufangen. Es gibt ein neues Array -Fragment aus dem ursprünglichen Array zurück, indem die Startposition und Länge angegeben werden, ohne das ursprüngliche Array zu ändern.
Die Funktionsdefinition lautet wie folgt:
array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array
$ Array : Das ursprüngliche Array, das abgefangen werden soll.
$ offset : Abfangen die Startposition (Start ab 0).
$ Länge : Die Anzahl der abgefangenen Elemente. Wenn nicht angegeben, werden alle Elemente von $ Offset bis zum Ende des Arrays abgefangen.
$ PREIVERVE_KEYS : Ob den Schlüsselnamen des ursprünglichen Arrays aufbewahrt werden soll. Standardmäßig nicht beibehalten.
Pagination unterteilt Daten im Wesentlichen in mehrere Blöcke und zeigt jeweils nur einen Inhaltsblock an. Unter der Annahme, dass $ pageSize -Daten pro Seite angezeigt werden, um die Daten auf der Seite $ currentPage anzuzeigen, sollte die Startposition sein:
$offset = ($currentPage - 1) * $pageSize;
Verwenden Sie Array_Slice, um diesen Teil der Daten abzufangen.
Nehmen wir ein simuliertes zweidimensionales Array als Beispiel, um zu zeigen, wie die Paging-Funktion implementiert wird.
<?php
// Daten simulieren,Angenommen, es ist das aus der Datenbank abgebildete Ergebnisssatz
$data = [
['id' => 1, 'name' => 'Zhang San', 'age' => 20],
['id' => 2, 'name' => 'Li Si', 'age' => 22],
['id' => 3, 'name' => 'Wang Wu', 'age' => 23],
['id' => 4, 'name' => 'Zhao liu', 'age' => 21],
['id' => 5, 'name' => 'Qian Qi', 'age' => 24],
['id' => 6, 'name' => 'Sonne Ba', 'age' => 25],
['id' => 7, 'name' => 'Zhou Jiu', 'age' => 26],
['id' => 8, 'name' => 'Wu Shi', 'age' => 27],
// Mehr Daten weglassen
];
// Anzahl der pro Seite angezeigten Stücke
$pageSize = 3;
// Aktuelle Seitennummer(Normalerweise von GET Parameterpass)
$currentPage = isset($_GET['page']) ? (int)$_GET['page'] : 1;
// Berechnen Sie die Gesamtzahl der Seiten
$totalItems = count($data);
$totalPages = ceil($totalItems / $pageSize);
// Offset berechnen
$offset = ($currentPage - 1) * $pageSize;
// passieren array_slice Holen Sie sich die aktuellen Seitendaten
$pageData = array_slice($data, $offset, $pageSize);
// Tabelle anzeigen
echo "<table border='1' cellpadding='5' cellspacing='0'>";
echo "<tr><th>ID</th><th>Name</th><th>Alter</th></tr>";
foreach ($pageData as $row) {
echo "<tr>";
echo "<td>{$row['id']}</td>";
echo "<td>{$row['name']}</td>";
echo "<td>{$row['age']}</td>";
echo "</tr>";
}
echo "</table>";
// Paging -Links anzeigen
echo "<div style='margin-top:10px;'>";
for ($page = 1; $page <= $totalPages; $page++) {
if ($page == $currentPage) {
echo "<strong>$page</strong> ";
} else {
echo "<a href='http://gitbox.net/path/to/your_script.php?page=$page'>$page</a> ";
}
}
echo "</div>";
?>
Datenvorbereitung : Im Beispiel wird ein Array $ -Daten simuliert, was das Ergebnis einer Datenbankabfrage in der tatsächlichen Entwicklung sein kann.
Paging -Parameter : $ pageSize steuert die Anzahl der pro Seite angezeigten Teile, und $ currentPage erhält die aktuelle Seitennummer.
Berechnen Sie die Gesamtzahl der Seiten : Verwenden Sie die Funktion ceil (), um die Gesamtzahl der Seiten zu berechnen, um die Erzeugung der Paging -Navigation zu erleichtern.
Offset -Berechnung : Berechnen Sie die aktuelle Seitenzahl, um sie aus dem Element des Arrays abzufangen.
Array Intercept : Array_Slice gibt eine Teilmenge von Daten zurück, die auf der aktuellen Seite angezeigt werden müssen.
HTML -Tabellenanzeige : Loop $ paceedata zu Ausgangstabellenzeilen.
Pagination Navigation : Generieren Sie einen Link und klicken Sie dann, um die Seitenzahlen über die Parameter erhalten .
Seitenzahl Legalitätsprüfung <br> Stellen Sie sicher, dass $ CurrentPage mindestens 1 und nicht größer als $ TotalPages ist, um zu verhindern, dass es außerhalb der Reichweite liegt.
Leistungsüberlegungen <br> Wenn das Datenvolumen sehr groß ist, wird empfohlen, die Limit und den direkten Versatz in Datenbankabfragen direkt zu verwenden, um Paging zu implementieren, anstatt alle Daten in den Speicher zu laden und dann Array_Slice zu verwenden.
Halten Sie URL -Domain -Namen konsistent <br> Im Beispiel wurde der Paging -Link -Domain -Name durch Gitbox.net ersetzt, das den Anforderungen entspricht.
Array_Slice ist ein einfaches Werkzeug zum Umgang mit Array -Paging und eignet sich für Szenarien mit einer geringen Datenmenge. Durch die Berechnung der Startversetzt- und Intercept-Länge können wir die Array-basierte Datenpaginierungsanzeige problemlos implementieren. Durch die Kombination von HTML-Tabellen und Paginationsnavigation können benutzerfreundliche Paginierungsfunktionen erfüllt werden.
Diese Methode ist sehr praktisch, wenn Sie an kleinen Projekten oder Anwendungen mit begrenztem Datenvolumen arbeiten.