현재 위치: > 최신 기사 목록> array_change_key_case ()는 json_encode () 및 json_decode ()를 결합한 응용 프로그램입니다.

array_change_key_case ()는 json_encode () 및 json_decode ()를 결합한 응용 프로그램입니다.

M66 2025-04-24

PHP의 경우 배열 키 이름의 경우 데이터를 처리 할 때, 특히 JSON 데이터 또는 API에서 데이터를 처리 할 때 약간의 불일치가 발생할 수 있습니다. 키 이름의 형식을 통합하려면 array_change_key_case () 함수를 사용하여 배열 키 이름을 소문자 또는 대문자로 통합 할 수 있습니다.

중첩 어레이 또는 객체를 처리 할 때는 Array_change_key_case () 에만 의존하는 것만으로는 충분하지 않습니다. 현재 json_encode ()json_decode ()를 사용하여 더 깊은 처리를 달성 할 수 있습니다. 이 기사는 간단한 예제를 사용하여 배열 키 이름의 통합 변환을 구현하는 방법을 보여줍니다.

1. 기능 소개

1. Array_change_key_case ()

이 기능은 모든 키 이름을 배열의 대문자 또는 소문자로 변환 할 수 있습니다.

 array_change_key_case(array $array, int $case = CASE_LOWER): array

매개 변수 $ case는 다음으로 설정할 수 있습니다.

  • Case_Lower (기본값) : 소문자로 변환합니다

  • Case_UPPER : 대문자로 변환합니다

2. json_encode () 및 json_decode ()

이 두 기능은 PHP 배열과 JSON 문자열을 서로 변환 할 수 있으며 종종 데이터 전송 및 처리에 사용됩니다. 데이터를 JSON으로 인코딩 한 다음 배열로 디코딩하면 쉽게 심층적 인 작동, 특히 키 이름의 재귀 처리가 가능합니다.

2. 실제 사례 : 배열의 모든 키 이름을 소문자로 재귀 적으로 변환

인터페이스 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"
    }
}

3. json_encode 및 json_decode와 일치하는 실질적인 중요성

물어볼 수 있습니다 : 왜 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);

4. 요약

json_encode ()json_decode () 와 함께 array_change_key_case ( )를 사용하면 다중 계층 중첩 어레이 키 이름의 통합 된 케이스 변환을 쉽게 구현할 수 있습니다. 이 접근법은 API 데이터, 구성 항목 또는 대규모 데이터 구조를 처리 할 때 특히 실용적이며 데이터 처리의 일관성과 견고성을 크게 향상시킬 수 있습니다.

키 이름 변환 또는 통합 형식을 처리 해야하는 경우 PHP 도구 상자 에이 트릭을 추가 할 수도 있습니다!