開発では、Restful APIによって返されるデータ形式は通常、JSONまたは配列フォームにあります。ただし、APIによって返されるフィールド名は、ケースと矛盾する場合があります。現時点では、PHPでarray_change_key_case()関数を使用して、フィールドの場合を統合できます。これは、特に異なるAPIからの返品値を扱う場合、データを正規化し、一貫性を確保するのに役立ちます。
array_change_key_case()は、配列内のすべてのキー(キー)を小文字または大文字に変換する非常にシンプルな関数です。この関数の構文は次のとおりです。
array array_change_key_case ( array $array, int $case = CASE_LOWER )
$配列:入力配列。
$ case : Case_upper (上品)またはcase_lower (小文字)である可能性がある変換の場合を指定します。デフォルト値はcase_lowerです。つまり、すべてのキーが小文字に変換されます。
Restful APIから取得したデータが次のとおりであるとします(実際のアプリケーションでは、 file_get_contents()またはcurlを介してデータを取得できます)
$data = [
'Name' => 'John Doe',
'Email' => 'john.doe@example.com',
'PhoneNumber' => '123-456-7890',
];
小文字または大文字のすべてのフィールド名を統合します。これは、 array_change_key_case()を使用して実行できます。実装の例は次のとおりです。
<?php
// 私たちを仮定しますAPI取得したデータ
$data = [
'Name' => 'John Doe',
'Email' => 'john.doe@example.com',
'PhoneNumber' => '123-456-7890',
];
// 配列のキー名を小文字に変換します
$dataLower = array_change_key_case($data, CASE_LOWER);
print_r($dataLower);
// 配列のキー名を大文字に変換します
$dataUpper = array_change_key_case($data, CASE_UPPER);
print_r($dataUpper);
?>
// 小文字のキー名
Array
(
[name] => John Doe
[email] => john.doe@example.com
[phonenumber] => 123-456-7890
)
// キャップキー名
Array
(
[NAME] => John Doe
[EMAIL] => john.doe@example.com
[PHONENUMBER] => 123-456-7890
)
上記のように、 array_change_key_case()は、すべてのキー名を小文字または大文字に簡単に変換できます。これにより、APIによって返されたデータフィールド名が仕様を満たしていることを確認し、ケースの矛盾によって引き起こされる潜在的な問題を回避できます。
複数の異なるRESTFUL APIから返されるデータを処理する必要があるアプリケーションを開発していると仮定し、返されたフィールド名が一貫していない可能性があります。 array_change_key_case()を使用してフィールド名を標準化して、後続のコードがこれらの詳細によって影響を受けないようにすることができます。例えば:
$responseFromApi = file_get_contents('https://m66.net/api/data');
$data = json_decode($responseFromApi, true);
// すべてのフィールド名を均一に小文字に変換します
$standardizedData = array_change_key_case($data, CASE_LOWER);
// フォローアップ処理を続けます
このように、APIによって返されたフィールド名が名前、名前、名前などであるかどうかに関係なく、ケースの矛盾によって引き起こされるエラーを回避するために、均一に処理できます。
array_change_key_case()は、配列のキー名を変更するだけでなく、配列の値は変更されません。
データがネストされた多次元配列である場合、すべてのキー名が一貫したケースに変換されるように、配列の各レイヤーを再帰的に処理する必要があります。
array_change_key_case()は、文字列のケース変換に敏感であるため、渡すパラメーターが正しいことを確認する必要があります。