
array_diff_key 함수는 두 개의 배열에서 키만 차집합을 구하는 함수입니다.
array_diff_key 함수는 두 개의 배열에서 키가 동일한 항목만 제거합니다.
예를 들어, array1이 array('a' => 1, 'b' => 2, 'c' => 3)이고 array2가 array('b' => 4, 'd' => 5, 'e' => 6)라면 array_diff_key 함수를 사용하여 두 개의 배열에서 키만 차집합을 구하면 array('a' => 1, 'c' => 3)가 됩니다.
이유는 array_diff_key 함수가 두 개의 배열에서 키가 동일한 항목을 제거하기 때문입니다.
따라서, array_diff_key 함수를 사용하여 두 개의 배열에서 키만 차집합을 구하고 싶다면, array1에서 array2의 키가 없는 항목만을 결과로 반환하도록 수정해야 합니다.
PHP 7.4 이상 버전에서는 array_filter 함수를 사용하여 array1에서 array2의 키가 없는 항목만을 결과로 반환할 수 있습니다.
예를 들어, 다음과 같이 수정할 수 있습니다.
#hostingforum.kr
php
$array1 = array('a' => 1, 'b' => 2, 'c' => 3);
$array2 = array('b' => 4, 'd' => 5, 'e' => 6);
$result = array_filter($array1, function($key) use ($array2) {
return !array_key_exists($key, $array2);
});
print_r($result);
이 코드를 실행하면 $result는 array('a' => 1, 'c' => 3)가 아닌 array('a' => 1, 'b' => 2, 'c' => 3)가 출력됩니다.
따라서, array_diff_key 함수를 사용하여 두 개의 배열에서 키만 차집합을 구하고 싶다면, array1에서 array2의 키가 없는 항목만을 결과로 반환하도록 수정해야 합니다.
PHP 7.4 이상 버전에서는 array_filter 함수를 사용하여 array1에서 array2의 키가 없는 항목만을 결과로 반환할 수 있습니다.
2025-06-27 22:59