Array_slice est une fonction de PHP pour intercepter une partie d'un tableau. Il renvoie un nouveau fragment de tableau du tableau d'origine en spécifiant la position de départ et la longueur sans modifier le tableau d'origine.
La définition de la fonction est la suivante:
array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array
$ Array : Le tableau d'origine à intercepter.
$ Offset : Interceptez la position de départ (commencez à partir de 0).
$ Longueur : le nombre d'éléments interceptés. S'il n'est pas spécifié, tous les éléments du décalage de $ à la fin du tableau sont interceptés.
$ Preserve_keys : s'il faut conserver le nom clé du tableau d'origine. Non maintenu par défaut.
La pagination divise essentiellement les données en plusieurs blocs, affichant un seul bloc de contenu à la fois. En supposant que les données PageSize $ s'affichent par page, pour afficher les données de la page $ CurrentPage, la position de départ doit être:
$offset = ($currentPage - 1) * $pageSize;
Utilisez Array_Slice pour intercepter cette partie des données.
Prenons un tableau bidimensionnel simulé à titre d'exemple pour montrer comment implémenter la fonction de pagination.
<?php
// Simuler les données,Supposons qu'il s'agit de l'ensemble de résultats interrogé à partir de la base de données
$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' => 'Soleil ba', 'age' => 25],
['id' => 7, 'name' => 'Zhou Jiu', 'age' => 26],
['id' => 8, 'name' => 'Wu shi', 'age' => 27],
// Omettre plus de données
];
// Nombre de pièces affichées par page
$pageSize = 3;
// Numéro de page actuel(Généralement par GET Passage des paramètres)
$currentPage = isset($_GET['page']) ? (int)$_GET['page'] : 1;
// Calculez le nombre total de pages
$totalItems = count($data);
$totalPages = ceil($totalItems / $pageSize);
// Calculer le décalage
$offset = ($currentPage - 1) * $pageSize;
// passer array_slice Obtenez les données de page actuelles
$pageData = array_slice($data, $offset, $pageSize);
// Table de spectacle
echo "<table border='1' cellpadding='5' cellspacing='0'>";
echo "<tr><th>ID</th><th>Nom</th><th>âge</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>";
// Afficher les liens de pagination
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>";
?>
Préparation des données : Dans l'exemple, une carte de tableau est simulée, ce qui peut être le résultat d'une requête de base de données dans le développement réel.
Paramètres de pagination : $ PageSize contrôle le nombre de pièces affichées par page, et $ currentPage obtient le numéro de page actuel.
Calculez le nombre total de pages : utilisez la fonction ceil () pour calculer le nombre total de pages pour faciliter la génération de navigation de pagination.
Calcul de décalage : calculer le numéro de page actuel pour intercepter à partir de l'élément du tableau.
Array Intercept : Array_slice renvoie un sous-ensemble de données qui doivent être affichées sur la page actuelle.
Affichage de la table HTML : LOOP $ PageData pour sortir des lignes de table.
Navigation de pagination : générez un lien, puis cliquez pour commuter les numéros de page via les paramètres Get .
Numéro de page Vérification de la légalité <br> Assurez-vous que $ CurrentPage n'est pas inférieur à 1 et pas plus que les pages Total pour empêcher de l'empêcher d'être hors de portée.
Considérations de performance <br> Lorsque le volume de données est très important, il est recommandé d'utiliser la limite et le décalage directement dans les requêtes de base de données pour implémenter la pagination au lieu de charger toutes les données dans la mémoire, puis d'utiliser Array_slice .
Gardez les noms de domaine URL cohérents <br> Dans l'exemple, le nom de domaine de liaison de pagination a été remplacé par gitbox.net , qui répond aux exigences.
Array_slice est un outil simple pour gérer la pagination du tableau et convient aux scénarios avec une petite quantité de données. En calculant le décalage de départ et la longueur d'interception, nous pouvons facilement implémenter l'affichage de pagination de données basé sur le tableau. La combinaison des tables HTML et de la navigation de pagination peut remplir des fonctions de pagination conviviales.
Cette méthode est très pratique si vous travaillez sur de petits projets ou des applications avec un volume de données limité.