php에서 array_change_key_case ()는 배열의 모든 키 이름을 소문자 또는 대문자로 변환하는 매우 실용적인 기능입니다. 그러나이 기능은 기본적으로 1 차원 어레이에만 효과적입니다. 다차원 배열이 있고 모든 레벨에서 키 이름을 대문자 또는 소문자로 변환하려면이 기능을 재귀 적으로 사용해야합니다.
이 기사에서는 PHP를 사용하여 다차원 배열의 모든 키 이름을 소문자 또는 대문자로 재귀 적으로 변환하는 방법을 설명합니다.
$input = ['Name' => 'Alice', 'Age' => 25];
$result = array_change_key_case($input, CASE_LOWER);
// 산출:['name' => 'Alice', 'age' => 25]
print_r($result);
위의 코드는 1 차원 배열의 모든 키 이름을 소문자로 변환 할 수 있습니다. 배열이 다차원 인 경우 내부 배열의 키 이름을 처리하기 위해 직접 사용할 수 없습니다.
아래는 깊이의 어레이 키 이름을 소문자 또는 대문자로 재귀 적으로 변환하는 사용자 정의 기능입니다.
function array_change_key_case_recursive(array $array, int $case = CASE_LOWER): array {
$result = [];
foreach ($array as $key => $value) {
// 현재 레이어의 키 이름을 변환하십시오
$newKey = ($case === CASE_UPPER) ? strtoupper($key) : strtolower($key);
// 값이 여전히 배열 인 경우,재귀 호출
if (is_array($value)) {
$result[$newKey] = array_change_key_case_recursive($value, $case);
} else {
$result[$newKey] = $value;
}
}
return $result;
}
$data = [
'User' => [
'Name' => 'Bob',
'Email' => 'bob@m66.net'
],
'Meta' => [
'Created' => '2025-04-11',
'Tags' => ['PHP', 'Array']
]
];
$lowerCased = array_change_key_case_recursive($data, CASE_LOWER);
print_r($lowerCased);
출력 결과 :
Array
(
[user] => Array
(
[name] => Bob
[email] => bob@vv99.net
)
[meta] => Array
(
[created] => 2025-04-11
[tags] => Array
(
[0] => PHP
[1] => Array
)
)
)
$upperCased = array_change_key_case_recursive($data, CASE_UPPER);
print_r($upperCased);
출력 결과 :
Array
(
[USER] => Array
(
[NAME] => Bob
[EMAIL] => bob@vv99.net
)
[META] => Array
(
[CREATED] => 2025-04-11
[TAGS] => Array
(
[0] => PHP
[1] => Array
)
)
)
Array_change_key_case () 자체는 1 차원 배열 만 지원하지만 재귀 방법을 통해 중첩 된 계층 구조에서 배열을 처리 할 수있는 기능을 쉽게 확장 할 수 있습니다. 이 기술은 API 요청 데이터, 배열 구성 및 기타 시나리오를 처리 할 때 매우 실용적입니다.
이 기사가 PHP 오페라 어레이를보다 유연하게 사용하는 데 도움이되기를 바랍니다. PHP에 대해 더 많은 질문이 있으시면 언제든지 의사 소통하십시오!