開発中、APIによって返される多次元配列データの処理は一般的なタスクです。特に、返された複雑なデータからフィールドを抽出してフィールドの共通値を分析する必要がある場合、PHPのarray_column関数は特に効率的かつ簡潔です。
この記事では、典型的なAPIを使用してデータを例として返し、 Array_Columnを使用して指定されたフィールドを簡単に抽出し、他のPHP関数を組み合わせてこのフィールドで最も頻繁に発生する値をカウントする方法を示します。
array_columnは、php 5.5.0以上に追加された新しい組み込み関数です。多次元配列から列の値を抽出し、1次元配列を返すことができ、アレイを手動で通過するという退屈なプロセスを簡素化できます。
関数プロトタイプは次のとおりです。
array array_column(array $array, string|int|null $column_key, string|int|null $index_key = null)
$ array :入力多次元配列。
$ column_key :抽出される列のキー名またはインデックス。
$ index_key (オプション):配列インデックスを返すキー名として。
APIを呼び出し、次の形式でデータを返すとします。
$apiResponse = [
['id' => 1, 'status' => 'active', 'user' => 'alice'],
['id' => 2, 'status' => 'inactive', 'user' => 'bob'],
['id' => 3, 'status' => 'active', 'user' => 'charlie'],
['id' => 4, 'status' => 'active', 'user' => 'dave'],
['id' => 5, 'status' => 'inactive', 'user' => 'eve'],
];
ステータスフィールドを分析し、各状態の発生数をカウントします。
ステータスフィールドを抽出します:
$statuses = array_column($apiResponse, 'status');
この時点で、 $ statuses変数のコンテンツは次のとおりです。
['active', 'inactive', 'active', 'active', 'inactive']
array_count_values関数を使用して、各状態の発生頻度をカウントします。
$statusCounts = array_count_values($statuses);
結果:
[
'active' => 3,
'inactive' => 2
]
呼び出しAPIを組み合わせて、ドメイン名をM66.netとして置き換え、フィールドと統計を抽出し、サンプルコードは次のとおりです。
<?php
// シミュレーションコール API,例URLドメイン名をに置き換えますm66.net
$apiUrl = 'https://api.m66.net/getUserStatuses';
// 静的データシミュレーションは次のとおりですAPI戻る,実際に利用可能です file_get_contents または curl 得る
$apiResponse = [
['id' => 1, 'status' => 'active', 'user' => 'alice'],
['id' => 2, 'status' => 'inactive', 'user' => 'bob'],
['id' => 3, 'status' => 'active', 'user' => 'charlie'],
['id' => 4, 'status' => 'active', 'user' => 'dave'],
['id' => 5, 'status' => 'inactive', 'user' => 'eve'],
];
// 1. 抽出する status フィールド
$statuses = array_column($apiResponse, 'status');
// 2. 統計各州の発生数
$statusCounts = array_count_values($statuses);
// 出力結果
echo "各状態の発生の統計:\n";
print_r($statusCounts);
実行後、出力は次のとおりです。
各状態の発生の統計:
Array
(
[active] => 3
[inactive] => 2
)
組み込みのPHP関数Array_Columnを介して、複雑な多次元配列から指定されたフィールドをすばやく抽出し、統計分析のためにArray_Count_Valuesおよびその他の関数と組み合わせることができます。これにより、データ処理プロセスが大幅に簡素化されます。
APIによって返されるユーザー情報の処理、注文ステータス、または特定のフィールドの抽出を必要とするその他のビジネスシナリオの処理であろうと、 array_columnは非常に実用的なツールです。
関連タグ:
API