PHP에서는 연관 배열이 있고 모든 키 이름을 소문자 (또는 대문자)로 변환하려는 경우 내장 기능 array_change_key_case ()를 사용할 수 있습니다. 이 기능은 특히 외부 데이터 소스 (예 : API, 양식, 데이터베이스)에서 얻은 데이터를 다룰 때 매우 실용적이며 일관되지 않은 주요 이름으로 인한 문제를 피할 수 있습니다.
array_change_key_case(array $array, int $case = CASE_LOWER): array
$ 배열 : 작동 할 원래 배열.
$ CASE : 변환의 대상 사례 유형. 기본값은 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
)
이 처리 후에는 원래 데이터의 키 이름의 경우에 대해 걱정하지 않고 $ 정규화 된 [ '이메일'] 또는 $ 정규화 된 [ '사용자 이름'] 를 통해 해당 값에 안전하게 액세스 할 수 있습니다.
Array_change_key_case ()는 첫 번째 레이어 배열의 주요 이름에서만 작동합니다. 배열이 다차원 인 경우 중첩 어레이를 처리하려면 루프 또는 재귀를 결합해야합니다.
대문자로 변환하려면 두 번째 매개 변수를 Case_Upper 로 변경하십시오.