現在の位置: ホーム> 最新記事一覧> array_change_key_case()Web Crawlerの解析データのユースケース

array_change_key_case()Web Crawlerの解析データのユースケース

M66 2025-04-25

特にHTMLテーブル、JSONインターフェイス、または複数のソースからAPIデータを抽出する必要がある場合、データのクリーニングと標準化は非常に重要なタスクです。異なるフィールドキー名に矛盾する場合があります。その後のデータ処理と論理的判断を促進するために、すべての小文字またはすべて大文字となるように、配列内のキー名を統一する必要があることがよくあります。

PHPでは、 array_change_key_case()は、このタスクを迅速に完了するのに役立つ効率的で実用的な機能です。この記事では、実際のWeb Crawlerシナリオから始まり、この機能の使用とCrawlerデータ処理におけるその効率的なアプリケーションを導入します。

1。関数の紹介

array_change_key_case(array $array, int $case = CASE_LOWER): array
  • $配列:入力の元の配列。

  • $ case :ターゲットケースを指定します。オプションの値はcase_lower (デフォルト)またはcase_upperです。

この関数は、キー名が指定されたケースに変換された新しい配列を返します。

2。ウェブクローラーのアプリケーションシナリオ

Webサイトhttps://api.m66.net/data/productsからJSONインターフェイスをつかみ、次の構造の配列を取得するとします。

 $data = [
    "ProductID" => 123,
    "ProductName" => "USB Cable",
    "PRICE" => 9.99,
    "currency" => "USD"
];

ご覧のとおり、これらのキー名の場合は非常に一貫性がありません。このタイプのデータを処理する場合、 $ data ['rice']を直接使用する場合、実際のキーは価格であるため価値を取得することはできません。この問題を解決するには、 array_change_key_case()を使用できます。

 $normalizedData = array_change_key_case($data, CASE_LOWER);

echo $normalizedData['price']; // 出力:9.99

このようにして、統一された方法でキー名を処理することができ、異なる上限および下位ケースのために複数の判断の枝を書く必要はなくなりました。

3.ネストされた配列を処理します

クロールされたデータがネストされた配列である場合、たとえば:

 $data = [
    "ProductID" => 123,
    "Details" => [
        "Manufacturer" => "XYZ Corp",
        "Warranty" => "1 year"
    ]
];

この時点で、 array_change_key_case()は、トップレベルのキー名のみを処理し、サブアレイを再帰的に処理しません。キー名を再帰的に統一する必要がある場合は、次のカスタム関数を使用できます。

 function array_change_key_case_recursive(array $array, int $case = CASE_LOWER): array {
    $result = [];
    foreach ($array as $key => $value) {
        $key = is_string($key) ? ($case === CASE_UPPER ? strtoupper($key) : strtolower($key)) : $key;
        $result[$key] = is_array($value) ? array_change_key_case_recursive($value, $case) : $value;
    }
    return $result;
}

$normalizedData = array_change_key_case_recursive($data, CASE_LOWER);

echo $normalizedData['details']['manufacturer']; // 出力:XYZ Corp

4。json_decode ()と組み合わせて使用​​する

Webクローラーでは、 json_decode()を使用してjsonデータを取得することがよくあり、この関数はオブジェクトまたは配列を返します。キー名Unified操作を簡単に使用できるようにするには、デコード時に連想配列を直接返すことをお勧めします。

 $json = file_get_contents("https://api.m66.net/data/products");
$data = json_decode($json, true); // 2番目のパラメーターはです true,連想配列を返します

$normalizedData = array_change_key_case_recursive($data, CASE_LOWER);

このようにして、処理された配列構造はより一貫性があり、その後のフィールド抽出と論理的判断を実行する方が簡単になります。

5。概要

アレイキー名の統一されたケースは、特にマルチソースデータのマージ、検索、マッピング、または保存の場合、Webクローラーでは非常に実用的な要件です。 PHPの組み込みarray_change_key_case()は、再帰的実装で複雑なデータ構造を簡単に処理できる効率的なソリューションを提供します。

実際の開発では、この機能をツールメソッドとしてカプセル化し、すべてのクローラーモジュールのデータクリーニング段階で均一に使用し、コードの堅牢性とメンテナンスを大幅に改善することをお勧めします。コードの1行だけで、キーネームケースの問題は簡単に解決できます。