La fonction de pagination est une exigence très courante lors du développement d'un site Web ou d'une application. Lorsque nous devons afficher une grande quantité de données, le chargement de toutes les données directement dans la page affectera non seulement l'expérience utilisateur, mais entraînera également la pression du serveur. Par conséquent, la fonction de pagination est un moyen efficace de résoudre ce problème. PHP fournit de nombreuses façons d'implémenter la pagination, où la fonction Array_Chunk est une manière très simple et efficace.
La fonction Array_Chunk est utilisée pour diviser un tableau en plusieurs petits tableaux et peut spécifier la taille de chaque petit tableau. Nous pouvons utiliser Array_Chunk pour implémenter la fonction de pagination pour nous aider à couper les données par page.
array_chunk(array $array, int $size, bool $preserve_keys = false): array
$ Array : Le tableau d'origine à couper.
$ Taille : la taille de chaque sous-réseau, c'est-à-dire la quantité de données affichées par page.
$ Preserve_Keys : s'il faut conserver la valeur clé du tableau d'origine, la valeur par défaut est fausse , qui sera réindexée.
Supposons que nous ayons déjà un tableau contenant une grande quantité de données, comme un tableau de listes d'utilisateurs:
$users = [
['id' => 1, 'name' => 'John Doe'],
['id' => 2, 'name' => 'Jane Smith'],
['id' => 3, 'name' => 'Emily Johnson'],
['id' => 4, 'name' => 'Michael Brown'],
// Plus de données...
];
Pour implémenter la fonction de pagination, nous pouvons utiliser Array_Chunk pour couper les données en plusieurs pages. Par exemple, 2 éléments de données sont affichés par page:
$page_size = 2; // Affiché par page2Données
$chunks = array_chunk($users, $page_size); // Couper en plusieurs petits tableaux
À ce stade, le tableau $ Chunks contiendra plusieurs petits tableaux, chaque petit tableau représentant les données d'une page:
// $chunks résultat
[
[
['id' => 1, 'name' => 'John Doe'],
['id' => 2, 'name' => 'Jane Smith']
],
[
['id' => 3, 'name' => 'Emily Johnson'],
['id' => 4, 'name' => 'Michael Brown']
],
// Plus de pages...
]
Supposons que nous devons afficher les données d'une certaine page en fonction de la demande de l'utilisateur. Habituellement, nous passerons le nombre actuel de pages via le paramètre URL:
$current_page = isset($_GET['page']) ? (int)$_GET['page'] : 1; // Obtenez le nombre actuel de page,La valeur par défaut est1Page
Ensuite, nous calculons la position de départ des données en fonction du nombre actuel de pages, puis supprimons les données correspondantes:
$total_pages = count($chunks); // 总Page数
if ($current_page > $total_pages) {
$current_page = $total_pages; // 防止访问不存在的Page码
}
$current_chunk = $chunks[$current_page - 1]; // 获取当前Page的数据
Nous pouvons maintenant afficher les données de la page actuelle de la page et générer une navigation de pagination:
echo "当前Page数据:";
foreach ($current_chunk as $user) {
echo $user['name'] . "<br>";
}
// 显示分Page链接
echo "<br>分Page:";
for ($i = 1; $i <= $total_pages; $i++) {
echo "<a href='?page=$i'>$i</a> ";
}
Dans le développement réel, nous devrons peut-être générer dynamiquement des liens de pagination. Dans cet exemple, nous pouvons utiliser m66.net comme nom de domaine et modifier l'URL de HREF en nom de domaine m66.net .
echo "<br>分Page:";
for ($i = 1; $i <= $total_pages; $i++) {
echo "<a href='https://m66.net?page=$i'>$i</a> ";
}
De cette façon, peu importe le nombre de pages, cliquer sur le lien de pagination sautera vers la page correspondante sous le nom de domaine m66.net .
Ce qui précède est la méthode de base d'utiliser Array_Chunk pour implémenter la pagination. De cette façon, nous pouvons segmenter efficacement une grande quantité de données en plusieurs petits morceaux, améliorant ainsi la vitesse de chargement des pages et l'expérience utilisateur. Dans le même temps, nous générons également dynamiquement des liens de pagination via des URL, permettant aux utilisateurs de naviguer facilement sur différentes pages de données.
J'espère que cet article vous aidera à comprendre comment utiliser Array_Chunk dans la fonction de pagination pour couper les données. Si vous avez d'autres questions, n'hésitez pas à poser!