PHP에서 처리 어레이는 매일 개발에서 매우 중요한 부분입니다. 여러 번, 우리는 두 배열을 비교 해야하는 상황을 만나고, array_diff_key () 함수는 PHP의 어레이 키 이름을 비교하는 데 사용되는 일반적인 메소드 중 하나입니다. 배열의 키 이름을 비교하여 다른 키 값 쌍을 찾지만 일부 개발자는 기능을 오해하고 배열 값을 비교하는 데 사용될 수 있다고 생각합니다. 오늘,이 오해를 명확히하겠습니다.
Array_Diff_Key () 는 배열 키 이름을 비교하는 PHP의 함수입니다. 첫 번째 배열에 포함 된 다양한 요소를 반환하지만 다른 배열에는 없습니다. 여기에는 값이 아닌 키 이름을 기준으로 비교가 있습니다.
array_diff_key(array $array1, array $array2, array ...$arrays): array
매개 변수 설명 :
$ array1 : 첫 번째 배열을 비교합니다.
$ array2, ... $ 배열 : 첫 번째 배열과 비교하기위한 하나 이상의 다른 배열.
반품 값 :
다른 어레이에 존재하지 않는 $ array1 에 모든 키 이름을 포함하는 요소를 반환합니다.
$array1 = [
'a' => 'apple',
'b' => 'banana',
'c' => 'cherry'
];
$array2 = [
'a' => 'apple',
'd' => 'date'
];
$result = array_diff_key($array1, $array2);
print_r($result);
산출:
Array
(
[b] => banana
[c] => cherry
)
이 예에서 Array_Diff_Key ()는 array $ array1 및 $ array2 의 키 이름을 비교하여 키 이름 B 및 C 에 해당하는 요소를 반환합니다. 이는 키 B 와 C가 $ array2 에 존재하지 않음을 나타냅니다.
많은 개발자들은 Array_Diff_Key () 가 배열 값을 비교하는 데 사용된다고 잘못 생각합니다. 예를 들어 값이 다른 두 배열의 부분을 찾으려면 Array_Diff_Key ()를 잘못 사용했을 수도 있지만 실제로는 배열의 주요 이름에만 초점을 맞 춥니 다.
$array1 = [
'a' => 'apple',
'b' => 'banana',
'c' => 'cherry'
];
$array2 = [
'a' => 'apple',
'b' => 'blueberry',
'c' => 'cherry'
];
$result = array_diff_key($array1, $array2);
print_r($result);
산출:
Array
(
[b] => banana
[c] => cherry
)
이 결과는 실제로 배열 값의 차이를 반영하지 않지만 키 이름에 따라 비교됩니다. Array_Diff_Key () 함수는 배열의 값을 비교하지 않으므로 오용하면 원하는 효과를 얻지 못할 것입니다.
키 이름 대신 두 배열의 값을 비교하려면 Array_Diff () 함수를 사용할 수 있습니다. Array_Diff ()는 배열의 값을 비교하고 두 배열에서 다른 요소를 반환합니다.
$array1 = ['apple', 'banana', 'cherry'];
$array2 = ['apple', 'blueberry', 'cherry'];
$result = array_diff($array1, $array2);
print_r($result);
산출:
Array
(
[1] => banana
)
이 예에서 array_diff ()는 키 이름을 비교하지 않고 다른 값 ( 바나나 )의 부품을 반환합니다.
Array_Diff_Key () 는 배열 키 이름을 기반으로 비교하는 기능입니다. 배열 값을 비교하는 데 사용되지 않습니다. 두 배열의 값을 비교하려면 array_diff_key () 대신 array_diff () 함수를 사용해야합니다. 그들의 용도와 차이점을 이해함으로써 코드를보다 효율적으로 작성하고 일반적인 오해에 빠지지 않도록 도와줍니다.
이 기사가 Array_diff_key () 의 역할을 더 잘 이해하고 실제 개발에서 오용 실수를 피하는 데 도움이되기를 바랍니다. 궁금한 점이 있거나 PHP의 다른 배열 기능을 더 탐색하려면 언제든지 문의하십시오.