array_intersect_assoc() 함수는 여러 배열을 비교하되 키(key)와 값(value)이 모두 일치하는 요소만 골라내어 새로운 배열로 반환하는 PHP 내장 함수입니다. 일반적인 array_intersect() 함수가 값만 비교하는 것과 달리, 이 함수는 인덱스(키)까지 함께 검사한다는 점이 핵심 차이입니다.
문법(Syntax)
array_intersect_assoc(arr1, arr2, arr3, arr4, …)
매개변수(Parameters)
arr1 − 기준이 되는 배열입니다. (필수)
arr2 − arr1과 비교할 배열입니다. (필수)
arr3 − 추가로 비교할 배열입니다. 필요에 따라 계속 확장할 수 있습니다. (선택)
arr4 − 추가로 비교할 배열입니다. (선택)
반환값(Return)
array_intersect_assoc() 함수는 첫 번째 배열(arr1)의 요소 중에서, 나머지 모든 매개변수 배열에 동일한 키와 값이 동시에 존재하는 항목들만 담은 배열을 반환합니다. 만약 일치하는 요소가 하나도 없다면 빈 배열을 반환합니다.
예제(Example)
<?php
$arr1 = array("p"=>"headphone", "q"=>"earpod", "r"=>"charger");
$arr2 = array("p"=>"headphone", "q"=>"earpod");
$res = array_intersect_assoc($arr1, $arr2);
print_r($res);
?>출력 결과(Output)
Array ( [p] => headphone [q] => earpod )
결과 해설
위 예제에서 $arr1과 $arr2를 비교한 결과, 키 p와 값 headphone, 그리고 키 q와 값 earpod이 두 배열에서 완전히 동일하므로 이 두 요소만 결과 배열에 포함되었습니다. 반면 키 r의 값 charger는 $arr2에 존재하지 않기 때문에 제외되었습니다.
참고: 키가 같더라도 값이 다르거나, 값이 같더라도 키가 다르면 해당 요소는 결과에 포함되지 않습니다. 키는 무시하고 값만 비교하고 싶다면
array_intersect()함수를 사용하세요.