現在の位置: ホーム> 最新記事一覧> array_chunkを介して2D配列をページングする方法

array_chunkを介して2D配列をページングする方法

M66 2025-04-25

実際の開発では、リスト表示ページなどの大きな2次元アレイページングを表示する必要があることがよくあります。 PHPは非常に実用的な関数Array_Chunk()を提供します。これにより、大きな配列を複数の小さなアレイに分割できます。このチュートリアルでは、 Array_Chunk()関数を使用して大きな2D配列をページングする方法を学びます。

サンプルシナリオ

多くのユーザープロファイル情報を含む大きな2次元配列があるとします。この情報ページを表示し、各ページに5つのレコードが表示されます。 array_chunk()を使用してこの関数を実装します。

ステップ:

  1. 大きな2Dアレイを準備します

    20のレコードの2次元配列があり、各レコードがユーザー情報であるとします。

     <?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. array_chunk()を使用したページネーション

    array_chunk()関数は、アレイを指定されたサイズの複数のサブアレイに分割します。各ページのレコードを5に制限し、ページに表示できます。

     <?php
    // ページごとに表示されます 5 記録
    $page_size = 5;
    
    // 使用 array_chunk() 大きな配列を複数の小さなアレイに分割します
    $paged_users = array_chunk($users, $page_size);
    
    // ページングされたユーザー情報を出力します
    echo '<pre>';
    print_r($paged_users);
    echo '</pre>';
    ?>
    

    このようにして、 $ paged_usersは2次元配列であり、各サブアレイには5つのユーザーレコードが含まれています。たとえば、最初のページには5つのレコードが表示されます。2番目のページには、次の5つのレコードなどが表示されます。

  3. ページネーションディスプレイ

    Webページに各ページのユーザー情報を表示する必要があるとします。現在のページ数とページの総数を計算することにより、ページングリンクを動的に生成できます。

     <?php
    $total_pages = count($paged_users);
    $current_page = 1;  // それが最初のページであると仮定します
    
    // 現在のページにユーザー情報を表示します
    echo '現在のページ:' . $current_page . '<br>';
    foreach ($paged_users[$current_page - 1] as $user) {
        echo 'ID: ' . $user['id'] . ',名前: ' . $user['name'] . ',郵便: ' . $user['email'] . '<br>';
    }
    
    // ページングリンクを表示します
    echo '<br>ページネーションリンク:<br>';
    for ($i = 1; $i <= $total_pages; $i++) {
        echo '<a href="page.php?page=' . $i . '">第' . $i . 'ページ</a> ';
    }
    ?>
    

    ここでは、現在のページ数が文字列( page.php?page = 1など)を照会することによって決定されると想定しています。リンクを動的に生成することにより、ユーザーは異なるページをクリックして対応するデータを表示できます。