現在の位置: ホーム> 最新記事一覧> ページングデータを処理するときにPHPのarray_column関数を使用してID列をすばやく抽出する方法は?

ページングデータを処理するときにPHPのarray_column関数を使用してID列をすばやく抽出する方法は?

M66 2025-06-15

特にバックグラウンド管理システムまたはデータ分析プラットフォームでの日常開発では、多くの場合、特定の列からデータを抽出するなど、ページングデータを処理する必要があります。 PHPでは、 Array_Columnは非常に実用的な機能であり、2次元配列から指定されたキー名の値をすばやく抽出し、新しいインデックスアレイを形成するのに役立ちます。この記事では、実際のケースを組み合わせて、 Array_Columnを使用してページングデータを処理するときにID列をすばやく抽出する方法を紹介します。

シーンの説明

インターフェイス開発を行っており、ページングリストデータをフロントエンドに返す必要があるとします。データはデータベースクエリからのものであり、返されたデータ形式は次のとおりです。

 $users = [
    ['id' => 101, 'name' => 'チャン・サン', 'email' => 'zhangsan@m66.net'],
    ['id' => 102, 'name' => 'li si', '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

で:

  • $入力:入力2次元配列。

  • $ 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' => 'li si', 'email' => 'lisi@m66.net'],
        ['id' => 103, 'name' => '王ウー', 'email' => 'wangwu@m66.net'],
        ['id' => 104, 'name' => 'Zhao Liu', 'email' => 'zhaoliu@m66.net'],
        ['id' => 105, 'name' => '太陽qi', '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);

出力の結果は、ほぼ次のとおりです。