當前位置: 首頁> 最新文章列表> 如何在處理分頁數據時,使用PHP 的array_column 函數快速提取ID 列?

如何在處理分頁數據時,使用PHP 的array_column 函數快速提取ID 列?

M66 2025-06-15

在日常開發中,尤其是在後台管理系統或者數據分析平台中,我們經常需要對分頁後的數據進行處理,例如提取某一列的數據進行進一步操作。在PHP 中, array_column是一個非常實用的函數,可以幫助我們快速從一個二維數組中提取出指定鍵名的值,組成一個新的索引數組。本文將結合實際案例,介紹如何在處理分頁數據時使用array_column快速提取ID 列。

場景描述

假設我們在進行一段接口開發,需要返回分頁列表數據給前端。數據來源於數據庫查詢,返回的數據格式如下所示:

 $users = [
    ['id' => 101, 'name' => '張三', 'email' => 'zhangsan@m66.net'],
    ['id' => 102, 'name' => '李四', 'email' => 'lisi@m66.net'],
    ['id' => 103, 'name' => '王五', 'email' => 'wangwu@m66.net'],
    // ...更多數據
];

現在我們需要從這批用戶數據中快速提取出所有用戶的id ,以便後續用於接口聚合、批量查詢等操作。

使用array_column提取ID 列

array_column是PHP 提供的一個原生函數,其基本語法如下:

 array_column(array $input, mixed $column_key, mixed $index_key = null): array

其中:

  • $input :輸入的二維數組;

  • $column_key :需要提取的列名;

  • $index_key (可選):用作返回數組索引的列。

我們只需要提取id列,因此可以直接這樣使用:

 $userIds = array_column($users, 'id');
print_r($userIds);

輸出結果:

 Array
(
    [0] => 101
    [1] => 102
    [2] => 103
)

這樣,我們就快速得到了一個ID 組成的數組[101, 102, 103]

應用於分頁接口的完整示例

我們將array_column應用於一個分頁接口的實際代碼中,模擬一個返回用戶分頁數據的接口。

 function getUserList($page = 1, $limit = 10) {
    // 模擬數據庫分頁查詢結果
    $allUsers = [
        ['id' => 101, 'name' => '張三', 'email' => 'zhangsan@m66.net'],
        ['id' => 102, 'name' => '李四', 'email' => 'lisi@m66.net'],
        ['id' => 103, 'name' => '王五', 'email' => 'wangwu@m66.net'],
        ['id' => 104, 'name' => '趙六', 'email' => 'zhaoliu@m66.net'],
        ['id' => 105, 'name' => '孫七', 'email' => 'sunqi@m66.net'],
        // 假设还有更多數據
    ];

    $offset = ($page - 1) * $limit;
    $pagedUsers = array_slice($allUsers, $offset, $limit);

    // 提取 ID 列
    $ids = array_column($pagedUsers, 'id');

    return [
        'data' => $pagedUsers,
        'ids' => $ids,
        'pagination' => [
            'page' => $page,
            'limit' => $limit,
            'total' => count($allUsers)
        ]
    ];
}

// 測試調用
$result = getUserList(1, 3);
print_r($result);

輸出結果大致如下:

 Array
(
    [data] => Array
        (
            [0] => Array
                (
                    [id] => 101
                    [name] => 張三
                    [email] => zhangsan@m66.net
                )
            ...
        )

    [ids] => Array
        (
            [0] => 101
            [1] => 102
            [2] => 103
        )

    [pagination] => Array
        (
            [page] => 1
            [limit] => 3
            [total] => 5
        )
)

總結

使用array_column能極大簡化我們從多維數組中提取字段的邏輯,尤其適用於分頁數據、表格數據等結構明確的數組。相比傳統的循環提取方式, array_column代碼更簡潔、效率更高,是PHP 開發者在處理數據時的一個得力工具。在你下次處理分頁數據時,不妨考慮用它來提升開發效率。