Dans le développement Web, la pagination est l'une des fonctionnalités communes. Qu'il s'agisse de listes d'articles, de catalogues de produits ou de critiques d'utilisateurs, la pagination est une solution efficace pour éviter le chargement lent des pages en raison d'un chargement excessif de données en même temps.
PHP fournit une fonction très pratique array_slice () , qui peut facilement extraire une partie des éléments d'un tableau. En combinant cette fonction, nous pouvons facilement implémenter une fonction de navigation de pagination de tableau de base. Cet article vous amènera à l'implémenter étape par étape.
La syntaxe de base de array_slice () est la suivante:
array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array
$ tableau : tableau d'origine
$ Offset : Position de démarrage (commencer par 0)
$ Longueur : paramètre facultatif, nombre d'éléments renvoyés
$ Preserve_keys : s'il faut conserver le nom de clé d'origine, par défaut
Supposons que nous ayons un tableau contenant plusieurs titres d'articles:
$articles = [
"Article 1", "Article 2", "Article 3", "Article 4", "Article 5",
"Article 6", "Article 7", "Article 8", "Article 9", "Article 10"
];
Nous voulons que 3 articles soient affichés par page.
Tout d'abord, nous devons savoir sur quelle page nous sommes actuellement, puis calculer le décalage correspondant en fonction du numéro de page.
<?php
$articles = [
"Article 1", "Article 2", "Article 3", "Article 4", "Article 5",
"Article 6", "Article 7", "Article 8", "Article 9", "Article 10"
];
$perPage = 3;
$totalArticles = count($articles);
$totalPages = ceil($totalArticles / $perPage);
// Obtenez le numéro de page actuel
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
if ($page < 1) $page = 1;
if ($page > $totalPages) $page = $totalPages;
// Calculez le décalage de la page actuelle
$offset = ($page - 1) * $perPage;
// utiliser array_slice Obtenez les données de la page actuelle
$currentPageArticles = array_slice($articles, $offset, $perPage);
?>
Ensuite, nous publions les données de la page actuelle sur la page:
<ul>
<?php foreach ($currentPageArticles as $article): ?>
<li><?php echo htmlspecialchars($article); ?></li>
<?php endforeach; ?>
</ul>
Nous devons également ajouter un lien de virage de page en bas de la page:
<div class="pagination">
<?php if ($page > 1): ?>
<a href="https://gitbox.net/pagination.php?page=<?php echo $page - 1; ?>">Page précédente</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; ?>">Page suivante</a>
<?php endif; ?>
</div>
Grâce à Array_Slice () et à une logique de pagination de base, nous pouvons ajouter de la fonction de pagination à n'importe quel contenu de tableau. Cette méthode convient aux scénarios où le volume de données est petit et qu'aucune opération de base de données n'est requise, telles que les listes de contenu statiques, les données en cache ou les affichages d'élément de configuration, etc. Pour les données plus grandes, il est recommandé d'utiliser la clause limite de la base de données pour la requête de pagination.
La maîtrise Array_slice () est une étape importante dans la construction d'applications PHP efficaces. J'espère que cet article vous est utile!