PHP의 경우 배열 키 이름의 경우 데이터를 처리 할 때, 특히 JSON 데이터 또는 API에서 데이터를 처리 할 때 약간의 불일치가 발생할 수 있습니다. 키 이름의 형식을 통합하려면 array_change_key_case () 함수를 사용하여 배열 키 이름을 소문자 또는 대문자로 통합 할 수 있습니다.
중첩 어레이 또는 객체를 처리 할 때는 Array_change_key_case () 에만 의존하는 것만으로는 충분하지 않습니다. 현재 json_encode () 및 json_decode ()를 사용하여 더 깊은 처리를 달성 할 수 있습니다. 이 기사는 간단한 예제를 사용하여 배열 키 이름의 통합 변환을 구현하는 방법을 보여줍니다.
이 기능은 모든 키 이름을 배열의 대문자 또는 소문자로 변환 할 수 있습니다.
array_change_key_case(array $array, int $case = CASE_LOWER): array
매개 변수 $ case는 다음으로 설정할 수 있습니다.
Case_Lower (기본값) : 소문자로 변환합니다
Case_UPPER : 대문자로 변환합니다
이 두 기능은 PHP 배열과 JSON 문자열을 서로 변환 할 수 있으며 종종 데이터 전송 및 처리에 사용됩니다. 데이터를 JSON으로 인코딩 한 다음 배열로 디코딩하면 쉽게 심층적 인 작동, 특히 키 이름의 재귀 처리가 가능합니다.
인터페이스 https://api.m66.net/user/profile 에서 다음 데이터를 얻습니다.
$data = [
"UserID" => 123,
"UserName" => "Alice",
"ContactInfo" => [
"Email" => "alice@m66.net",
"Phone" => "1234567890"
]
];
우리는 모든 키 이름 (중첩 포함)을 균일하게 변환하려고하며 솔루션은 다음과 같습니다.
function array_change_key_case_recursive(array $arr, int $case = CASE_LOWER): array {
$result = [];
foreach ($arr as $key => $value) {
$key = ($case === CASE_UPPER) ? strtoupper($key) : strtolower($key);
if (is_array($value)) {
$result[$key] = array_change_key_case_recursive($value, $case);
} else {
$result[$key] = $value;
}
}
return $result;
}
// 샘플 데이터
$data = [
"UserID" => 123,
"UserName" => "Alice",
"ContactInfo" => [
"Email" => "alice@m66.net",
"Phone" => "1234567890"
]
];
// 소문자 키 이름으로 변환하십시오
$lowercased = array_change_key_case_recursive($data, CASE_LOWER);
echo json_encode($lowercased, JSON_PRETTY_PRINT);
출력 결과는 다음과 같습니다.
{
"userid": 123,
"username": "Alice",
"contactinfo": {
"email": "alice@m66.net",
"phone": "1234567890"
}
}
물어볼 수 있습니다 : 왜 Array_change_key_case ()를 직접 사용하지 않습니까? 주된 이유는 중첩 어레이를 재귀 적으로 처리 할 수 없기 때문입니다. json_encode () 및 json_decode () 를 통해 객체를 배열 형식으로 변환 할 수 있으며 각 레이어의 키 이름을 재귀 적으로 처리 할 수 있습니다.
예를 들어, https://api.m66.net/data/info 에서받은 것은 객체 구조이며 다음 방법을 사용하여 변환 및 처리 할 수 있습니다.
$json = '{
"UserID": 456,
"UserProfile": {
"FullName": "Bob",
"Contact": {
"Email": "bob@m66.net"
}
}
}';
$array = json_decode($json, true); // 배열로 변환하십시오
$normalized = array_change_key_case_recursive($array, CASE_LOWER);
echo json_encode($normalized, JSON_PRETTY_PRINT);
json_encode () 및 json_decode () 와 함께 array_change_key_case ( )를 사용하면 다중 계층 중첩 어레이 키 이름의 통합 된 케이스 변환을 쉽게 구현할 수 있습니다. 이 접근법은 API 데이터, 구성 항목 또는 대규모 데이터 구조를 처리 할 때 특히 실용적이며 데이터 처리의 일관성과 견고성을 크게 향상시킬 수 있습니다.
키 이름 변환 또는 통합 형식을 처리 해야하는 경우 PHP 도구 상자 에이 트릭을 추가 할 수도 있습니다!