在實際開發中,我們經常需要將一個大的二維數組分頁顯示,比如在一個列表展示頁面上。 PHP 提供了一個非常實用的函數array_chunk() ,它可以將一個大的數組拆分成多個小數組。在這個教程中,我們將學習如何使用array_chunk()函數來分頁顯示一個大的二維數組。
假設我們有一個大的二維數組,它包含了很多用戶的資料信息。我們想要將這些信息分頁顯示出來,每一頁展示5 條記錄。我們將使用array_chunk()來實現這一功能。
準備一個大的二維數組
假設我們有一個包含20 條記錄的二維數組,每條記錄是一個用戶信息:
<?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']
];
?>
使用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就是一個二維數組,每個子數組包含5 個用戶記錄。例如,第一頁顯示的5 條記錄,第二頁顯示接下來的5 條記錄,依此類推。
分頁顯示
假設我們需要在網頁上顯示每一頁的用戶信息。我們可以通過計算當前頁數和總頁數,來動態生成分頁鏈接。
<?php
$total_pages = count($paged_users);
$current_page = 1; // 假設當前是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 . '">1。' . $i . '頁</a> ';
}
?>
這裡我們假設通過查詢字符串(如page.php?page=1 )來確定當前頁數。通過動態生成鏈接,用戶可以點擊不同的頁面,查看相應的數據。