PHP의 array_diff_key() 함수는 여러 배열의 키(key)를 서로 비교한 뒤, 그 차이점을 배열 형태로 반환합니다. 즉, 첫 번째 배열에는 존재하지만 다른 배열들의 키에는 없는 요소들만 모아서 새로운 배열로 돌려줍니다.
이 함수는 값(value)이 아니라 오직 키를 기준으로 비교한다는 점에서 array_diff()와 차별화됩니다. 따라서 연관 배열에서 특정 키가 다른 배열과 겹치는지 확인할 때 유용하게 사용됩니다.
문법(Syntax)
array_diff_key(arr1, arr2, arr3, arr4, ...)
매개변수(Parameters)
arr1 − 비교의 기준이 되는 배열입니다. 필수 항목입니다.
arr2 − 기준 배열과 비교할 대상 배열입니다. 필수 항목입니다.
arr3 − 추가로 비교할 배열을 지정할 수 있습니다. 선택 사항입니다.
arr4 − 그 이상의 추가 배열도 필요한 만큼 지정할 수 있습니다. 선택 사항입니다.
반환값(Return)
array_diff_key() 함수는 첫 번째 배열의 요소 중, 나머지 어떤 배열에도 해당 키가 존재하지 않는 항목들만 담은 배열을 반환합니다.
사용 예제(Example)
<?php
$arr1 = array('car' => 10, 'bus' => 15, 'truck' => 22);
$arr2 = array('motorbike' => 35, 'bus' => 42);
$res = array_diff_key($arr1, $arr2);
print_r($res);
?>
실행 결과(Output)
Array
(
[car] => 10
[truck] => 22
)
위 예제를 보면, 두 배열 모두 'bus'라는 키를 가지고 있기 때문에 결과 배열에서 제외되었습니다. 반면 'car'와 'truck'은 첫 번째 배열에만 존재하는 키이므로 그대로 남게 됩니다. 이처럼 array_diff_key()는 값과 무관하게 키의 존재 여부만으로 차집합을 계산합니다.