현재 위치: > 최신 기사 목록> array_change_key_case ()의 효과 array_filter () 전후에 사용 된 효과

array_change_key_case ()의 효과 array_filter () 전후에 사용 된 효과

M66 2025-04-24

PHP에서 배열을 처리 할 때는 종종 두 가지 매우 실용적인 기능이 사용됩니다 : Array_change_key_case ()array_filter () . 이 두 기능은 합에 사용됩니다. 많은 개발자 들이이 두 기능을 사용할 때 물어볼 수 있습니다.이 두 기능의 호출 순서가 중요합니까? 최종 처리 결과에 영향을 미칩니 까?

이 기사는 분석 및 예를 통해이 질문에 답할 것입니다.

하나, 두 가지 기능 소개

1. Array_change_key_case ()

이 기능은 배열의 키 이름을 모든 소문자 또는 모든 대문자로 변환하는 데 사용되며 다음과 같이 사용됩니다.

 array_change_key_case(array $array, int $case = CASE_LOWER): array
  • $ CASE는 CASE_LOWER (기본값) 또는 CASE_UPPER 일 수 있습니다.

예:

 $arr = ['Name' => 'Tom', 'Age' => 25];
print_r(array_change_key_case($arr, CASE_LOWER));
// 산출:Array ( [name] => Tom [age] => 25 )

2. array_filter ()

이 기능은 배열에서 요소를 필터링하는 데 사용되며 콜백 기능을 사용자 정의하여 유지 해야하는 요소를 결정할 수 있습니다.

 array_filter(array $array, ?callable $callback = null, int $mode = 0): array

기본적으로 False , NULL , 0 , 빈 문자 등과 같은 "False 값"이있는 요소를 제거합니다.

예:

 $arr = ['name' => 'Tom', 'age' => 0, 'email' => ''];
print_r(array_filter($arr));
// 산출:Array ( [name] => Tom )

2. 다른 순서, 결과가 다른가요?

예, 순서는 특정 배열 구조 및 처리중인 목적에 따라 결과에 영향을 줄 수 있습니다 .

사례 1 : array_change_key_case ()array_filter () 후 호출됩니다.

이 경우 키 케이스가 먼저 변환되고 값이 필터링됩니다.

 $data = ['Name' => 'Tom', 'Age' => null, 'EMAIL' => ''];
$result = array_filter(array_change_key_case($data));
print_r($result);

산출:

 Array ( [name] => Tom )

설명 :

  • 키는 모두 소문자입니다 : 이름 , 나이 , 이메일

  • 과 빈 줄이 제거됩니다

사례 2 : array_filter () 이후, array_change_key_case () 가 호출됩니다

 $data = ['Name' => 'Tom', 'Age' => null, 'EMAIL' => ''];
$result = array_change_key_case(array_filter($data));
print_r($result);

산출:

 Array ( [name] => Tom )

출력이 동일한 것처럼 보이지만 콜백 함수와 함께 Array_Filter ()를 사용하면 차이가 나올 수 있습니다.

더 복잡한 예 :

 $data = ['Name' => 'Tom', 'Age' => 0, 'EMAIL' => 'tom@m66.net'];

$result1 = array_filter(array_change_key_case($data), function($val) {
    return !empty($val);
});

$result2 = array_change_key_case(array_filter($data, function($val) {
    return !empty($val);
}));

print_r($result1);
print_r($result2);

산출:

 $result1:
Array ( [name] => Tom [email] => tom@m66.net )

$result2:
Array ( [name] => Tom [email] => tom@m66.net )

이 시점에서 결과는 여전히 동일하지만 키 이름의 상류 및 하부를 기반으로 추가 논리적 처리를 수행 해야하는 경우 순서가 판단 논리에 영향을 줄 수 있습니다.

3. 실제 개발에서 순서를 선택하는 방법은 무엇입니까?

필요에 따라 판단하는 것이 좋습니다.

  • 키 형식을 균일하게 처리 하려면 (예 : 사례 혼란을 피하기 위해 모든 소문자를 변환하는 등) 먼저 Array_change_key_case ()를 사용할 수 있습니다.

  • 배열 값의 필터링 로직에 더 많은주의를 기울이고 키 이름의 형식에 신경 쓰지 않으면 먼저 Array_Filter ()를 사용하는 것은 중요하지 않습니다.

  • 둘 다 사용해야하는 경우, 불확실한 논리적 오류를 피하기 위해 시퀀스 순서를 명확하게 정의하는 것이 가장 좋습니다.