Position actuelle: Accueil> Derniers articles> Comment pagincer un tableau 2D via array_chunk

Comment pagincer un tableau 2D via array_chunk

M66 2025-04-25

Dans le développement réel, nous devons souvent afficher une grande pagination de tableau bidimensionnelle, comme sur une page d'affichage de liste. PHP fournit une fonction très pratique array_chunk () , qui peut diviser un grand tableau en plusieurs petits tableaux. Dans ce didacticiel, nous apprendrons à utiliser la fonction array_chunk () pour paginer un grand tableau 2D.

Échantillon de scénario

Supposons que nous ayons un grand tableau bidimensionnel qui contient de nombreuses informations sur le profil utilisateur. Nous voulons afficher cette page d'information, avec 5 enregistrements affichés sur chaque page. Nous utiliserons array_chunk () pour implémenter cette fonction.

étape:

  1. Préparez un grand tableau 2D

    Supposons que nous ayons un tableau bidimensionnel de 20 enregistrements, chaque enregistrement étant une information utilisateur:

     <?php
    $users = [
        ['id' => 1, 'name' => 'Alice', 'email' => 'alice@m66.net'],
        ['id' => 2, 'name' => 'Bob', 'email' => 'bob@m66.net'],
        ['id' => 3, 'name' => 'Charlie', 'email' => 'charlie@m66.net'],
        ['id' => 4, 'name' => 'David', 'email' => 'david@m66.net'],
        ['id' => 5, 'name' => 'Eve', 'email' => 'eve@m66.net'],
        ['id' => 6, 'name' => 'Frank', 'email' => 'frank@m66.net'],
        ['id' => 7, 'name' => 'Grace', 'email' => 'grace@m66.net'],
        ['id' => 8, 'name' => 'Hannah', 'email' => 'hannah@m66.net'],
        ['id' => 9, 'name' => 'Ivy', 'email' => 'ivy@m66.net'],
        ['id' => 10, 'name' => 'Jack', 'email' => 'jack@m66.net'],
        ['id' => 11, 'name' => 'Kevin', 'email' => 'kevin@m66.net'],
        ['id' => 12, 'name' => 'Lily', 'email' => 'lily@m66.net'],
        ['id' => 13, 'name' => 'Mason', 'email' => 'mason@m66.net'],
        ['id' => 14, 'name' => 'Nina', 'email' => 'nina@m66.net'],
        ['id' => 15, 'name' => 'Oscar', 'email' => 'oscar@m66.net'],
        ['id' => 16, 'name' => 'Paul', 'email' => 'paul@m66.net'],
        ['id' => 17, 'name' => 'Quincy', 'email' => 'quincy@m66.net'],
        ['id' => 18, 'name' => 'Rachel', 'email' => 'rachel@m66.net'],
        ['id' => 19, 'name' => 'Sam', 'email' => 'sam@m66.net'],
        ['id' => 20, 'name' => 'Tina', 'email' => 'tina@m66.net']
    ];
    ?>
    
  2. Pagination à l'aide d' array_chunk ()

    La fonction Array_Chunk () divise un tableau en plusieurs sous-réseaux d'une taille spécifiée. Nous pouvons limiter les enregistrements sur chaque page à 5 et les afficher sur les pages:

     <?php
    // Affiché par page 5 Enregistrer
    $page_size = 5;
    
    // utiliser array_chunk() Diviser les grands tableaux en plusieurs petits tableaux
    $paged_users = array_chunk($users, $page_size);
    
    // Sortie des informations utilisateur paginées
    echo '<pre>';
    print_r($paged_users);
    echo '</pre>';
    ?>
    

    De cette façon, $ paged_users est un tableau bidimensionnel, chaque sous-réseau contient 5 enregistrements utilisateur. Par exemple, la première page affiche 5 enregistrements, la deuxième page affiche les 5 enregistrements suivants, etc.

  3. Affichage de pagination

    Supposons que nous devons afficher des informations utilisateur pour chaque page de la page Web. Nous pouvons générer dynamiquement des liens de pagination en calculant le nombre actuel de pages et le nombre total de pages.

     <?php
    $total_pages = count($paged_users);
    $current_page = 1;  // Supposons que c&#39;est la première page
    
    // Afficher les informations utilisateur sur la page actuelle
    echo 'Page actuelle:' . $current_page . '<br>';
    foreach ($paged_users[$current_page - 1] as $user) {
        echo 'ID: ' . $user['id'] . ',Nom: ' . $user['name'] . ',Mail: ' . $user['email'] . '<br>';
    }
    
    // Afficher les liens de pagination
    echo '<br>Lien de pagination:<br>';
    for ($i = 1; $i <= $total_pages; $i++) {
        echo '<a href="page.php?page=' . $i . '">1 et 1' . $i . 'Page</a> ';
    }
    ?>
    

    Ici, nous supposons que le nombre actuel de pages est déterminé en interrogeant la chaîne (tel que page.php? Page = 1 ). En générant dynamiquement des liens, les utilisateurs peuvent cliquer sur différentes pages pour afficher les données correspondantes.