현재 위치: > 최신 기사 목록> 비교 배열에 중복 키가 있으면 어떻게됩니까?

비교 배열에 중복 키가 있으면 어떻게됩니까?

M66 2025-06-06

PHP에서 array_diff_key () 함수는 둘 이상의 배열을 비교하고 첫 번째 배열에는 존재하지만 다른 배열에는 존재하지 않는 키 이름을 포함하는 배열을 반환하는 데 사용됩니다. 키 이름이 반복되면 기능은 어떻게 작동합니까? 특정 상황을 살펴 보겠습니다.

기능 소개

array_diff_key () 함수의 기본 구문은 다음과 같습니다.

 array_diff_key(array $array1, array $array2, array ...$arrays): array
  • $ array1 : 첫 번째 배열을 비교합니다.

  • $ array2, ... $ 배열 : 첫 번째 배열과 비교 해야하는 다른 배열.

이 함수는 첫 번째 배열 $ array1 에 존재하는 키 이름을 포함하는 배열을 반환하는 반면,이 키 이름의 요소는 후속 배열 $ array2 , ... $ arrays 에서 찾을 수 없습니다.

array_diff_key ()를 사용할 때 주요 복제 문제

Array_Diff_Key () 의 동작은 배열에 중복 키가있을 때 놀라운 일입니다. PHP의 어레이 키는 고유하며 배열에 동일한 키를 지정하더라도 마지막 키 값 쌍만이 마지막에 보존됩니다.

예 1 : 배열에 중복 키가 있습니다

 $array1 = [
    "a" => 1,
    "b" => 2,
    "c" => 3,
    "a" => 4  // 키를 반복하십시오
];

$array2 = [
    "a" => 100,
    "b" => 200
];

$result = array_diff_key($array1, $array2);
print_r($result);

이 예에서 $ array1 Middle Key "A"1 로 시작하여 4 로 재정의됩니다. 따라서 $ array1 에는 실제로 "a"=> 4 가 하나뿐입니다.

위 코드를 실행하면 출력이 다음과 같습니다.

 Array
(
    [c] => 3
)

Array_Diff_Key ()는 array $ array1$ array2를 비교하고 $ array2 에는 "c" 키가 없기 때문에 "c" 에 해당하는 요소를 반환합니다.

예 2 : 여러 배열 비교

 $array1 = [
    "a" => 1,
    "b" => 2,
    "c" => 3,
    "a" => 4  // 키를 반복하십시오
];

$array2 = [
    "a" => 100,
    "b" => 200
];

$array3 = [
    "c" => 300,
    "d" => 400
];

$result = array_diff_key($array1, $array2, $array3);
print_r($result);

이 예에서 $ array1 의 키 "A" 는 반복적으로 14 로 정의되지만 결국 4 로 유지됩니다. 함수는 "d"가 다른 배열이 아닌 $ array1 에서 고유하기 때문에 Key Name "d" 에 해당하는 Array1 , Array2Array3 및 리턴 요소를 비교합니다.

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

 Array
(
    [d] => 400
)

결과 분석

  • 중복 키의 효과 : 배열에 중복 키가있을 때 PHP는 이전 키 값 쌍을 자동으로 덮어 씁니다. 마지막 키 값 쌍 만 남습니다. 따라서 array_diff_key ()는 최종 키 이름으로 비교하여 중간 복제물의 값을 무시합니다.

  • 키 이름의 독창성 : Array_diff_key ()는 비교를 위해 키 이름의 독창성에 의존합니다. 배열의 키가 여러 배열에 존재하는 경우 최종 예약 키는 배열의 마지막 발생에서 키 값을 기준으로합니다.

요약

Array_Diff_Key () 함수를 사용하는 경우 배열의 중복 키가 자동으로 중복 제거되며 마지막 키 값 쌍 만 유효합니다. 여러 중복 키를 유지 해야하는 경우 키 값 쌍의 연관 배열과 같은 다른 방법을 값으로 사용하는 것을 고려하십시오.

이 기사가 특히 배열에서 반복 된 키를 다룰 때 array_diff_key () 함수의 동작을 더 잘 이해하는 데 도움이되기를 바랍니다.

코드의 URL 도메인 이름 교체

이 기사의 코드 예제에는 특정 URL이 포함되지 않지만 실제 개발 프로세스에 유사한 URL 사용법이 관련되어 있으면 URL의 도메인 이름을 필요에 따라 M66.NET 으로 바꿀 수 있습니다.