현재 위치: > 최신 기사 목록> Array_diff_assoc () 사례 민감성 문제 분석

Array_diff_assoc () 사례 민감성 문제 분석

M66 2025-06-07

PHP는 일반적으로 사용되는 프로그래밍 언어로 개발자에게 풍부한 배열 작동 기능을 제공합니다. 배열 처리 과정에서 Array_Diff_Assoc ()은 첫 번째 배열에 존재하지만 두 번째 어레이에는 존재하지 않는 두 배열과 반환 요소를 비교하는 데 사용할 수있는 매우 유용한 기능입니다. 이 기능은 키와 값을 비교할뿐만 아니라 해당 유형을 고려합니다.

오늘날 우리가 탐색 할 초점은 Array_diff_assoc () 가 사례 민감한 이유 와이 사례 차이가 결과에 어떤 영향을 미치는지입니다.

array_diff_assoc () 함수의 기본 사용

먼저 Array_Diff_Assoc () 함수의 기본 사용법을 빠르게 검토해 봅시다. 이 기능의 프로토 타입은 다음과 같습니다.

 array_diff_assoc(array $array1, array $array2): array

이 함수는 $ array1 에서 모든 요소를 ​​포함하는 배열을 반환하지만 $ array2 는 아닙니다. Array_Diff_Assoc () 는 키 유형과 값 및 값의 내용을 고려할 것입니다.

샘플 코드 :

 $array1 = array(
    "a" => "apple",
    "b" => "banana",
    "c" => "cherry"
);

$array2 = array(
    "a" => "apple",
    "b" => "Banana",
    "c" => "cherry"
);

$result = array_diff_assoc($array1, $array2);

print_r($result);

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

 Array
(
    [b] => banana
)

array_diff_assoc () case가 민감한 이유는 무엇입니까?

Array_Diff_Assoc () 가 CASE에 민감한 이유는 비교 방법입니다. 함수 내에서 PHP는 수렴 연산자 ( === )를 사용하여 두 배열의 키 값 쌍을 비교합니다. 합동 연산자는 값의 내용을 비교할뿐만 아니라 유형과 대문자 및 대문자를 비교합니다.

예를 들어:

위의 코드 예제에서는 다음과 같습니다.

  • $ array1 [ "b"] 의 값은 "바나나"입니다.

  • $ array2 [ "b"] 의 값은 "바나나"입니다.

array_diff_assoc ()는 비교를 위해 수렴 연산자를 사용하기 때문에 PHP는 문자열 비교가 대소 문자를 비교하기 때문에 "바나나"와 "바나나"가 다른 문자열로 간주됩니다.

따라서이 예에서 Array_diff_assoc ()Array1 의 "바나나"와 Array2 의 "바나나"가 다르므로 차이로 반환한다고 생각합니다.

결과에 영향을 미치는 방법?

array_diff_assoc () 의 사례에 민감한 특성은 결과에 큰 영향을 미칩니다. 사례에 민감하지 않으려면 다른 방법을 비교하기 위해 고려하십시오. 예를 들어, array_map () 함수를 사용하여 모든 값을 소문자 (또는 대문자)로 변환 한 다음 비교할 수 있습니다.

array_map ()을 사용하여 소문자로 변환

 $array1 = array(
    "a" => "apple",
    "b" => "banana",
    "c" => "cherry"
);

$array2 = array(
    "a" => "apple",
    "b" => "Banana",
    "c" => "cherry"
);

// 모든 값을 소문자로 변환합니다
$array1 = array_map('strtolower', $array1);
$array2 = array_map('strtolower', $array2);

$result = array_diff_assoc($array1, $array2);

print_r($result);

이 코드는 두 배열의 값을 소문자로 변환 한 다음 비교합니다. 출력은 다음과 같습니다.

 Array
(
    [b] => banana
)

요약

Array_Diff_Assoc () 는 합동 연산자를 사용하여 배열의 키와 값을 비교하여 문자열을 비교할 때 사례 차이를 고려하기 때문에 사례에 민감합니다. 이 문제를 피하려면 Array_Diff_Assoc () 호출하기 전에 Array_Map () 및 기타 메소드를 사용하여 배열 값을 균일 한 케이스로 변환하여 결과가 경우의 차이에 영향을받지 않도록 할 수 있습니다.

이 기사가 Array_Diff_Assoc () 의 동작을 더 잘 이해하고 사례 차이를 처리하는 방법을 더 잘 이해하도록 도와줍니다. 다른 질문이 있으시면 언제든지 물어보십시오!