PHPでは、連想配列があり、すべてのキー名を小文字(または大文字)に変換する場合は、組み込み関数array_change_key_case()を使用できます。この関数は、特に外部のデータソース(API、フォーム、データベースなど)から取得したデータを扱う場合に非常に実用的であり、キー名の一貫性のないケースによって引き起こされる問題を回避できます。
array_change_key_case(array $array, int $case = CASE_LOWER): array
$配列:操作する元の配列。
$ケース:変換のターゲットケースタイプ。デフォルトはcase_lower (小文字)であり、 case_upper (上品)も使用できます。
<?php
$data = [
"Name" => "チャン・サン",
"AGE" => 28,
"Email" => "zhangsan@m66.net"
];
$lowercased = array_change_key_case($data, CASE_LOWER);
print_r($lowercased);
?>
出力:
Array
(
[name] => チャン・サン
[age] => 28
[email] => zhangsan@vv99.net
)
ご覧のとおり、元の配列のキー名、年齢、電子メールはすべて小文字に変換されます。
サードパーティAPI( https://api.m66.net/user/infoなど)から次のJSONデータを受け取ったとします。
{
"UserID": 1024,
"UserName": "lisi",
"Email": "lisi@m66.net"
}
このJSONを解析してアレイに変換した後、すべてのキー名を均一に小文字にして簡単に処理する必要があります。
<?php
$json = '{
"UserID": 1024,
"UserName": "lisi",
"Email": "lisi@m66.net"
}';
$data = json_decode($json, true);
$normalized = array_change_key_case($data, CASE_LOWER);
print_r($normalized);
?>
出力の結果は次のとおりです。
Array
(
[userid] => 1024
[username] => lisi
[email] => lisi@vv99.net
)
この処理の後、元のデータのキー名のケースを心配することなく、 $ remarized ['email']または$ remarized ['username']を使用して、対応する値に安全にアクセスできます。
array_change_key_case()は、最初のレイヤー配列のキー名でのみ動作します。アレイが多次元の場合は、ネストされた配列を処理するためにループまたは再帰を組み合わせる必要があります。
大文字に変換する場合は、2番目のパラメーターをcase_upperに変更するだけです。