현재 위치: > 최신 기사 목록> 더 빠르거나 Array_change_key_case () 또는 수동 트래버스는? 키 이름 케이스 변환의 효율성 비교

더 빠르거나 Array_change_key_case () 또는 수동 트래버스는? 키 이름 케이스 변환의 효율성 비교

M66 2025-04-25

PHP에서 키 이름의 사례 변환이 일반적인 요구 사항입니다. 특히 사용자 입력 또는 외부 데이터를 처리 할 때 사례가 일치하지 않을 수 있으며 통합 형식이 필요합니다. 일반적인 관행에는 array_change_key_case () 함수 사용 또는 배열을 수동으로 이동하고 키 이름의 경우를 하나씩 수정하는 것이 포함됩니다. 이 기사는이 두 가지 방법의 성능을 비교하여 개발자가보다 적절한 선택을 할 수 있도록 도와줍니다.

1. array_change_key_case () 함수의 개요

PHP의 내장 array_change_key_case () 함수는 배열의 모든 키 이름의 경우를 변경하는 데 사용됩니다. 이 기능은 두 가지 매개 변수를 수용합니다.

  • 첫 번째 매개 변수는 작동 할 배열입니다.

  • 두 번째 매개 변수는 키 이름을 대문자 또는 소문자로 변환할지 여부를 지정하는 선택적 플래그입니다. 기본적으로 키 이름은 소문자로 변환됩니다.

기능 프로토 타입은 다음과 같습니다.

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

$ case 매개 변수가 case_upper 로 설정되면 키 이름이 대문자로 변환됩니다. 그렇지 않으면 기본값이 소문자로 변환됩니다.

샘플 코드 :

 $array = ['FirstName' => 'John', 'LastName' => 'Doe'];
$lowercaseArray = array_change_key_case($array, CASE_LOWER);
print_r($lowercaseArray);

산출:

 Array
(
    [firstname] => John
    [lastname] => Doe
)

2. 키 이름의 경우를 수정하기 위해 배열을 수동으로 통과합니다.

키 이름 케이스 변환을 구현하는 또 다른 방법은 배열을 수동으로 통과하고 키 이름의 경우를 하나씩 수정하는 것입니다. 이 방법은 각 배열 요소를 통해 반복하고 키 이름 을 수동으로 조정하려면 array_map () 와 같은 구조를 사용해야합니다.

샘플 코드 :

 $array = ['FirstName' => 'John', 'LastName' => 'Doe'];

foreach ($array as $key => $value) {
    $newKey = strtolower($key);  // 또는 strtoupper($key) 대문자 변환
    $newArray[$newKey] = $value;
}

print_r($newArray);

산출:

 Array
(
    [firstname] => John
    [lastname] => Doe
)

3. 성능 비교 : array_change_key_case () 대 수동 트래버스

성능 테스트

이 두 가지 방법의 효율성을 비교하기 위해 PHP의 마이크로 타임 () 함수를 사용하여 각 방법의 실행 시간을 기록 할 수 있습니다. 간단한 성능 테스트 코드는 다음과 같습니다.

 // 더 큰 배열을 준비하십시오
$array = [];
for ($i = 0; $i < 100000; $i++) {
    $array['Key' . $i] = 'Value' . $i;
}

// 시험 array_change_key_case()
$startTime = microtime(true);
array_change_key_case($array, CASE_LOWER);
$endTime = microtime(true);
echo "array_change_key_case() 실행 시간: " . ($endTime - $startTime) . " 두번째\n";

// 시험수동 횡단
$startTime = microtime(true);
$newArray = [];
foreach ($array as $key => $value) {
    $newKey = strtolower($key);  // 소문자를 돌립니다
    $newArray[$newKey] = $value;
}
$endTime = microtime(true);
echo "수동 횡단 실행 시간: " . ($endTime - $startTime) . " 두번째\n";

4. 결과 분석

  • array_change_key_case () 의 장점 :

    • 코드는 간결하고 이해하기 쉽습니다.

    • 더 작은 어레이의 경우 성능에 문제가 거의 없거나 전혀 없습니다.

    • 내장 함수의 실행 효율은 일반적으로 배열이 클 때 수동 트래버스보다 낫습니다.

  • 수동 트래버스의 장점 :

    • 일부 특별한 경우 더 큰 유연성을 제공 할 수 있습니다. 예를 들어, 케이스를 변환하는 동안 키 이름으로 다른 복잡한 작업을 수행해야 할 수도 있습니다.

    • 키 이름의 변환 방법 (특정 규칙에 따라 키 이름의 부분 변환)을 정확하게 제어 할 수 있습니다.

5. 요약

대부분의 일반 시나리오의 경우 array_change_key_case ()는 더 간단하고 효율적인 선택입니다. 내부 구현은 최적화되며 일반적으로 특히 큰 배열을 처리 할 때 수동 트래버스보다 빠르게 실행됩니다. 그러나 키 이름을보다 유연하게 처리 해야하는 특수 시나리오에서는 수동 트래버스도 좋은 선택입니다.

성능 관점에서 순전히 고려하면 Array_change_key_case () 는 의심 할 여지없이 더 빠른 솔루션, 특히 대규모 데이터 작업과 관련하여 더 빠른 솔루션입니다. 일부 간단한 작업의 경우 불필요한 트래버스 작업을 피하면 내장 기능을 사용하는 것이 일반적으로 더 효율적입니다.