APIを開発するときは、各パラメーターの発生頻度を理解するために要求のパラメーターを分析する必要があることがよくあります。これにより、APIインターフェイスを最適化するか、ターゲットを絞った改善を行うことができます。 PHPは非常に実用的な関数Array_count_values()を提供します。これは、配列内の各値の発生数をカウントできます。この関数を組み合わせることで、API要求パラメーターの周波数統計を簡単に実装し、周波数でランク付けできます。
複数の要求パラメーターを受信するAPIインターフェイスがあるとします。これらのパラメーターは繰り返し表示される場合があります。発生頻度をカウントすることにより、どのパラメーターが最も一般的に使用されているかを判断するのに役立ち、それによってその後の最適化のためのデータサポートを提供します。
次の要求パラメーターを受信するAPIインターフェイスを想像してください(リクエストパラメーターが$ _getまたは$ _POSTに渡されると仮定します):
GET /api/products?category=electronics&color=red&category=home&color=blue&size=medium&category=electronics
この例では、カテゴリと色の両方のパラメーターが繰り返し発生します。各パラメーターの発生頻度をカウントし、これらの周波数に従って並べ替えたいと考えています。
最初に、$ _getまたは$ _postを使用して、API要求のパラメーターを取得します。 GETリクエストのパラメーターを取得しているとします。
// 要求されたパラメーターを取得します
$requestParams = $_GET; // 例: ['category' => 'electronics', 'color' => 'red', ...]
phpのarray_count_values()関数を使用して、各パラメーターの発生数をカウントします。この関数は、アレイを入力として使用し、元のアレイの各値が表示される回数を含む新しいアレイを返します。
// 統計パラメーター周波数
$paramFrequency = array_count_values($requestParams);
この時点で、 $ paramfrequencyは、パラメーターの発生数を含む配列を返します。例えば:
// 结果例
// ['electronics' => 2, 'red' => 1, 'home' => 1, 'blue' => 1, 'medium' => 1]
次に、 Arsort()関数を使用して、値だけ(つまり、引数が発生する回数)を下降順序で並べ替えて、周波数ランキングを取得できます。
// 下降周波数でソートします
arsort($paramFrequency);
// 出力ソートされた結果
print_r($paramFrequency);
最後に、出力は次のとおりです。
// 结果例
// ['electronics' => 2, 'red' => 1, 'home' => 1, 'blue' => 1, 'medium' => 1]
この時点で、 「エレクトロニクス」が最も頻繁であるため、最初にランクされています。
ランキング情報をより直感的に表示する場合は、ループを使用して、ソートされたパラメーター周波数を1つずつ出力できます。
// 各パラメーターのランキングを出力します
$rank = 1;
foreach ($paramFrequency as $value => $count) {
echo "ランキング: $rank, パラメーター値: $value, 発生数: $count\n";
$rank++;
}
出力の例の例:
ランキング: 1, パラメーター値: electronics, 発生数: 2
ランキング: 2, パラメーター値: red, 発生数: 1
ランキング: 3, パラメーター値: home, 発生数: 1
ランキング: 4, パラメーター値: blue, 発生数: 1
ランキング: 5, パラメーター値: medium, 発生数: 1
<?php
// aをシミュレートします GET リクエストパラメーター
$_GET = [
'category' => 'electronics',
'color' => 'red',
'category' => 'home',
'color' => 'blue',
'size' => 'medium',
'category' => 'electronics'
];
// 要求されたパラメーターを取得します
$requestParams = $_GET;
// 統計パラメーター周波数
$paramFrequency = array_count_values($requestParams);
// 下降周波数でソートします
arsort($paramFrequency);
// 出力ソートされた結果
$rank = 1;
foreach ($paramFrequency as $value => $count) {
echo "ランキング: $rank, パラメーター値: $value, 発生数: $count\n";
$rank++;
}
?>
phpのarray_count_values()関数を使用することにより、API要求パラメーターの頻度を簡単にカウントし、 arsort()を使用してソートすることができます。このアプローチは、APIの使用をよりよく理解したり、インターフェイスの最適化を実行したり、関連するデータ分析を実行したりするのに役立ちます。