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

PHP array_intersect_key() 함수 – 배열 키 비교와 교집합 구하기

PHP의 array_intersect_key() 함수는 여러 배열의 키(key)를 서로 비교하여, 공통으로 존재하는 키만 추려낸 결과를 반환하는 함수입니다. 첫 번째 배열을 기준으로 나머지 배열들과 키를 대조하며, 모든 배열에 동일한 키가 존재하는 요소만 포함한 새로운 배열을 만들어 줍니다.

값(value)이 아니라 키를 기준으로 비교한다는 점이 이 함수의 핵심 특징입니다. 따라서 값이 달라도 키가 같다면 해당 요소는 결과에 포함됩니다.

문법(Syntax)

array_intersect_key(arr1, arr2, arr3, arr4, …)

매개변수(Parameters)

  • arr1 − 비교의 기준이 되는 배열입니다. (필수)

  • arr2 − 기준 배열과 비교할 배열입니다. (필수)

  • arr3 − 추가로 비교하고 싶은 배열입니다. 필요에 따라 계속 확장할 수 있습니다. (선택)

  • arr4 − 추가로 비교하고 싶은 배열입니다. (선택)

반환 값(Return)

array_intersect_key() 함수는 첫 번째 배열의 요소 중에서, 다른 모든 매개변수 배열에 동일한 키가 존재하는 값들을 담은 배열을 반환합니다. 공통 키가 하나도 없으면 빈 배열을 반환합니다.

사용 예제(Example)

<?php
   $arr1 = array("p"=>"headphone","q"=>"earpod","r"=>"charger");
   $arr2 = array("p"=>"headphone","q"=>"earpod");
   $res = array_intersect_key($arr1,$arr2);
   print_r($res);
?>

실행 결과(Output)

Array
(
   [p] => headphone
   [q] => earpod
)

예제 설명

위 예제에서 $arr1에는 p, q, r 세 개의 키가 있고, $arr2에는 p, q 두 개의 키가 있습니다. 두 배열에서 공통으로 존재하는 키는 p와 q뿐이므로, 결과 배열에는 'r' => "charger"는 제외되고 p와 q에 해당하는 요소만 출력됩니다.

참고: 유사한 함수들

  • array_intersect() − 키가 아닌 을 기준으로 배열의 교집합을 구합니다.

  • array_intersect_assoc() − 키와 값을 모두 비교하여 교집합을 구합니다.

  • array_diff_key() − 반대로, 첫 번째 배열에만 존재하는 키의 차집합을 구합니다.