현재 위치: > 최신 기사 목록> GraphQL API 반환 데이터에서 Array_change_key_case ()를 사용하는 방법은 무엇입니까?

GraphQL API 반환 데이터에서 Array_change_key_case ()를 사용하는 방법은 무엇입니까?

M66 2025-04-25

GraphQL API를 사용하여 데이터를 얻을 때 종종 복잡한 구조로 중첩 어레이를 처리합니다. GraphQL은 필드 이름 (예 : Camelcase, Snake_case 등)의 케이스 스타일을 제한하지 않기 때문에 반환 된 데이터는 다른 형식의 키 이름을 혼합했을 수 있습니다. PHP에서 이러한 주요 이름의 경우를 통합하려면 Array_change_key_case ()는 매우 실용적인 기능입니다.

이 기사에서는 균일 한 소문자 또는 대문자 키 이름의 효과를 달성하기 위해 GraphQL API에 의해 데이터를 처리 할 때 array_change_key_case () 함수를 재귀 로직과 함께 사용하는 방법을 소개합니다.

1. 기능 소개 : Array_change_key_case ()

Array_change_key_case () 는 배열의 모든 키 이름을 소문자 또는 대문자로 변환하는 PHP 내장 기능입니다.

 array_change_key_case(array $array, int $case = CASE_LOWER): array
  • $ CASE 선택적 매개 변수 :

    • Case_Lower : 기본값, 소문자로 변환하십시오

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

2. GraphQL 데이터 예제

기사 목록을 얻으려면 다음 URL을 통해 GraphQL 인터페이스를 요청한다고 가정 해 봅시다.

 $url = 'https://m66.net/graphql';

요청에 의해 반환 된 JSON 데이터는 다음과 같습니다.

 {
  "data": {
    "ArticleList": [
      {
        "ID": 101,
        "Title": "PHP Array Tricks",
        "Author": {
          "Name": "John Doe",
          "Email": "john@example.com"
        }
      }
    ]
  }
}

중첩 된 객체 배열이 포함되어 있으며 키 이름은 형식에서 일치하지 않습니다.

3. 재귀 적으로 통합 된 키 이름 케이스 기능

Array_change_key_case () 자체는 다차원 배열을 지원하지 않으므로 중첩 구조를 처리하기 위해 재귀 기능을 캡슐화해야합니다.

 function change_keys_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] = change_keys_case_recursive($value, $case);
        } else {
            $result[$newKey] = $value;
        }
    }

    return $result;
}

4. 완전한 예 : GraphQL 응답 데이터 처리

 <?php

// 시뮬레이션 GraphQL 인터페이스 획득 JSON 데이터
$json = '{
    "data": {
        "ArticleList": [
            {
                "ID": 101,
                "Title": "PHP Array Tricks",
                "Author": {
                    "Name": "John Doe",
                    "Email": "john@example.com"
                }
            }
        ]
    }
}';

$data = json_decode($json, true);

// 통합 키 이름을 소문자로 사용하는 사용자 정의 기능을 호출
$normalizedData = change_keys_case_recursive($data, CASE_LOWER);

// 출력 결과
print_r($normalizedData);

function change_keys_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] = change_keys_case_recursive($value, $case);
        } else {
            $result[$newKey] = $value;
        }
    }

    return $result;
}
?>

5. 출력 결과는 다음과 같습니다.

 Array
(
    [data] => Array
        (
            [articlelist] => Array
                (
                    [0] => Array
                        (
                            [id] => 101
                            [title] => PHP Array Tricks
                            [author] => Array
                                (
                                    [name] => John Doe
                                    [email] => john@example.com
                                )
                        )
                )
        )
)

보시다시피, 모든 키 이름은 소문자로 변환되며, 이는 후속 데이터 처리 및 템플릿 렌더링에 더 도움이됩니다.

6. 요약

GraphQL API에 의해 반환 된 데이터를 처리하고 Array_change_key_case () 와 재귀 로직을 결합하면 상부 및 소문자에서 키 이름의 균일 성을 쉽게 달성하기가 쉽습니다. 이러한 표준화 된 처리는 코드의 가독성을 향상시킬뿐만 아니라 사례 불일치로 인한 잠재적 버그를 피합니다. 프로젝트 요구에 따라 키 이름을 소문자 또는 대문자로 변환하고 유연하게 조정할 수 있습니다.