Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP array_diff_key() 함수 완벽 정리: 동작 원리와 사용 예제

array_diff_key()는 PHP에 내장된(built-in) 함수로, 하나 이상의 배열에서 키(key)를 기준으로 서로를 비교하고 그 차이를 반환하는 함수입니다.

array_diff_key() 함수 문법

array array_diff_key($array1, $array2, ..)

이 함수는 두 개 이상의 배열 이름을 매개변수로 받을 수 있으며, 첫 번째 배열을 나머지 모든 배열과 비교합니다. 비교는 값(value)이 아닌 키만을 대상으로 이루어지며, 다른 배열에는 존재하지 않는 키를 가진 첫 번째 배열의 요소들이 결과로 반환됩니다.

사용 예제

<?php
    $my_array1 = array("1"=>"Joe", "45"=>"Goldberg", "37"=>"Charolette", "91"=>"Micheal");
    $my_array2 = array("1"=>"Joe", "45"=>"Goldberg", "37"=>"Charolette");
    $my_array3 = array("1"=>"Joe", "45"=>"Goldberg");
    print_r(array_diff_key($my_array1, $my_array2, $my_array3));
?>

실행 결과

Array
(
    [91] => Micheal
)

코드 설명

<?php ?> 태그 안에서 세 개의 배열이 각각 특정 값을 가진 채로 선언됩니다. 그런 다음 세 개의 배열을 모두 매개변수로 전달하며 array_diff_key() 함수를 호출하고, 그 결과를 print_r()로 출력합니다.

반환되는 최종 결과는 첫 번째 배열과 두 번째 배열의 키 차이, 그리고 첫 번째 배열과 세 번째 배열의 키 차이를 모두 반영한 값입니다. 위 예제에서 키 "91"은 두 번째 배열과 세 번째 배열 어디에도 존재하지 않기 때문에, 해당 키를 가진 요소인 Micheal만 결과 배열에 남게 됩니다.

참고 사항

  • 키 비교 시 문자열 표현이 동일하면 같은 키로 간주됩니다. 예를 들어 정수 1과 문자열 "1"은 동일한 키로 취급됩니다.
  • 값(value)까지 함께 비교하려면 array_diff_assoc(), 키가 아닌 값만 비교하려면 array_diff() 함수를 사용할 수 있습니다.
  • 비교 기준이 되는 키를 콜백 함수로 직접 지정하고 싶다면 array_diff_ukey()를 활용할 수 있습니다.