php에서 array_intersect_key 및 array_diff_key 는 배열의 주요 이름을 비교하는 데 사용되는 배열 처리 기능이지만 동작과 목적이 다릅니다. 이 기사에서는 차이점에 대해 자세히 논의하고 실제 예제를 사용 하여이 두 기능의 사용 시나리오를 더 잘 이해할 수 있도록 도와줍니다.
Array_Intersect_key 함수는 모든 배열의 여러 배열에서 키 이름과 해당 값을 반환하는 데 사용됩니다. 즉, 여러 배열에 키 이름이 존재하는 모든 요소를 포함하는 새로운 배열을 반환합니다.
array array_intersect_key(array $array1, array $array2, array ...$arrays)
$ array1 : 비교할 첫 번째 배열.
$ array2 : 비교할 두 번째 배열.
$ 배열 : 비교를 위해 여러 배열을 선택할 수 있습니다.
<?php
$array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['b' => 4, 'c' => 5, 'd' => 6];
$result = array_intersect_key($array1, $array2);
print_r($result);
?>
Array
(
[b] => 2
[c] => 3
)
이 예에서 Array_Intersect_key는 $ array1 및 $ array2 에 존재하는 키 이름 B 및 C 에 해당하는 값을 반환합니다. 따라서 반환 된 결과에는이 두 가지 키 이름의 값이 포함되어 있습니다.
array_diff_key 함수는 첫 번째 배열에 포함되어 있지만 다른 배열에는없는 배열을 반환합니다. 그 목적은 다른 배열에도 존재하는 첫 번째 배열에서 키를 제거하는 것입니다.
array array_diff_key(array $array1, array $array2, array ...$arrays)
$ array1 : 첫 번째 배열은 다른 배열과 비교됩니다.
$ array2 : 비교할 두 번째 배열.
$ 배열 : 비교를 위해 여러 배열을 선택할 수 있습니다.
<?php
$array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['b' => 4, 'c' => 5, 'd' => 6];
$result = array_diff_key($array1, $array2);
print_r($result);
?>
Array
(
[a] => 1
)
이 예에서는 array_diff_key가 $ array2 에 존재하지 않기 때문에 Key가 $ array1 에 이름 이 지정된 요소를 반환합니다.
Array_intersect_key 와 Array_diff_key 의 주요 차이점은 다음과 같습니다.
Array_intersect_key는 모든 배열에 존재하는 키 값 쌍을 반환합니다.
Array_Diff_Key는 첫 번째 배열에 존재하지만 다른 배열에 있지 않은 키 값 쌍을 반환합니다.
세 가지 배열이 있다고 가정합니다.
$array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['b' => 4, 'c' => 5, 'd' => 6];
$array3 = ['c' => 7, 'd' => 8];
C는 모든 배열에 존재하는 키이기 때문에 Array_intersect_key ($ array1, $ array2, $ array3)는 [ 'c'=> 3]을 반환합니다.
A 와 B는 $ array2 및 $ array3 가 아닌 $ array1에만 존재하기 때문에 Array_diff_key ($ array1, $ array2, $ array3) 는 [ 'a'=> 1, 'b'=> 2] 를 반환합니다.
Array_intersect_key는 여러 배열에있는 키를 찾아이 키와 해당 값을 반환하는 데 사용됩니다.
Array_Diff_Key 는 첫 번째 배열에 있지만 후속 배열에는 있지 않은 키를 찾는 데 사용 되며이 키와 해당 값을 반환합니다.
이 두 기능은 배열 작업, 특히 키 이름을 기반으로 비교 및 필터링이 필요한 시나리오에서 매우 유용합니다. 그들의 차이를 이해하면 PHP 배열을보다 효율적으로 처리하는 데 도움이 될 수 있습니다.