PHP開発では、特にユーザーが入力したデータに関しては、ユーザーが入力したキー名の一貫性のないケースに遭遇することがよくあります。たとえば、ユーザーが入力したフォームデータまたはURLパラメーターのキー名には、ケース形式が異なる場合があります。現時点では、統一されたケース処理が実行されない場合、予期しないエラーが発生する可能性があります。
PHPは非常に便利な関数Array_Change_Key_Case()を提供します。これは、配列キー名のケース形式を変更するために使用できます。この関数は、ユーザー入力のケースの矛盾を処理するのに非常に適しています。
array_change_key_case()関数は、配列のすべてのキー名を指定された上限および小文字に変換するために使用されます。配列のすべてのキー名を小文字または大文字に変換することを選択できます。
array_change_key_case(array $array, int $case = CASE_LOWER): array
$配列:処理する配列。
$ case :変換されたケースを指定します。 case_upperまたはcase_lowerである場合があります。デフォルト値はcase_lowerであり、すべてのキー名が小文字に変換されていることを示します。
ユーザー入力から次のフォームデータを受け取ったとしたら、キー名に異なるケース形式がある場合があります。
$userInput = [
'Name' => 'John',
'AGE' => 25,
'email' => 'john@example.com'
];
すべてのキー名を小文字に均一に変換する場合は、 array_change_key_case()を使用できます。
<?php
$userInput = [
'Name' => 'John',
'AGE' => 25,
'email' => 'john@example.com'
];
// 配列のキー名を小文字に変換します
$normalizedInput = array_change_key_case($userInput, CASE_LOWER);
print_r($normalizedInput);
?>
出力は次のとおりです。
Array
(
[name] => John
[age] => 25
[email] => john@example.com
)
ご覧のとおり、すべてのキー名は小文字に変換され、ケースの矛盾によって引き起こされる問題を回避します。
時々、URLのパラメーターは、それらに対処する必要がある場所でもあります。たとえば、URLはさまざまなケースでクエリパラメーターを使用する場合があり、これらのパラメーターのケース形式を統一したいと考えています。あなたのURLがこのようなものであると仮定します:
https://m66.net/profile?UserName=JohnDoe&Email=john@example.com&Age=30
parse_url()とparse_str()を使用して、urlを解析し、 array_change_key_case()を介してパラメーターの上限と小文字を統合します。
<?php
$url = "https://m66.net/profile?UserName=JohnDoe&Email=john@example.com&Age=30";
// 分析URL
$parsedUrl = parse_url($url);
parse_str($parsedUrl['query'], $queryParams);
// クエリパラメーターのキー名を小文字に変換します
$normalizedParams = array_change_key_case($queryParams, CASE_LOWER);
print_r($normalizedParams);
?>
出力は次のとおりです。
Array
(
[username] => JohnDoe
[email] => john@example.com
[age] => 30
)
このようにして、URLのパラメーターキー名が一貫性がない場合でも、最終的には必要な形式に統合されるようにします。
array_change_key_case()は、配列を処理するときに配列キー名のケースを統合するのに役立つ非常に便利な関数です。ユーザーの入力またはURLパラメーターを処理する場合、均一なケースにとって非常に重要です。ケースの矛盾によって引き起こされるエラーを減らし、データ処理の一貫性を確保することができます。この記事の例を使用して、 Array_Change_Key_Case()を使用して実際の問題を解決する方法をよりよく理解できることを願っています。