PHP에서 array_diff_key () 함수는 둘 이상의 배열을 비교하고 첫 번째 배열에는 존재하지만 다른 배열에는 존재하지 않는 키 이름을 포함하는 배열을 반환하는 데 사용됩니다. 키 이름이 반복되면 기능은 어떻게 작동합니까? 특정 상황을 살펴 보겠습니다.
array_diff_key () 함수의 기본 구문은 다음과 같습니다.
array_diff_key(array $array1, array $array2, array ...$arrays): array
$ array1 : 첫 번째 배열을 비교합니다.
$ array2, ... $ 배열 : 첫 번째 배열과 비교 해야하는 다른 배열.
이 함수는 첫 번째 배열 $ array1 에 존재하는 키 이름을 포함하는 배열을 반환하는 반면,이 키 이름의 요소는 후속 배열 $ array2 , ... $ arrays 에서 찾을 수 없습니다.
Array_Diff_Key () 의 동작은 배열에 중복 키가있을 때 놀라운 일입니다. PHP의 어레이 키는 고유하며 배열에 동일한 키를 지정하더라도 마지막 키 값 쌍만이 마지막에 보존됩니다.
$array1 = [
"a" => 1,
"b" => 2,
"c" => 3,
"a" => 4 // 키를 반복하십시오
];
$array2 = [
"a" => 100,
"b" => 200
];
$result = array_diff_key($array1, $array2);
print_r($result);
이 예에서 $ array1 Middle Key "A" 는 1 로 시작하여 4 로 재정의됩니다. 따라서 $ array1 에는 실제로 "a"=> 4 가 하나뿐입니다.
위 코드를 실행하면 출력이 다음과 같습니다.
Array
(
[c] => 3
)
Array_Diff_Key ()는 array $ array1 및 $ array2를 비교하고 $ array2 에는 "c" 키가 없기 때문에 "c" 에 해당하는 요소를 반환합니다.
$array1 = [
"a" => 1,
"b" => 2,
"c" => 3,
"a" => 4 // 키를 반복하십시오
];
$array2 = [
"a" => 100,
"b" => 200
];
$array3 = [
"c" => 300,
"d" => 400
];
$result = array_diff_key($array1, $array2, $array3);
print_r($result);
이 예에서 $ array1 의 키 "A" 는 반복적으로 1 과 4 로 정의되지만 결국 4 로 유지됩니다. 함수는 "d"가 다른 배열이 아닌 $ array1 에서 고유하기 때문에 Key Name "d" 에 해당하는 Array1 , Array2 및 Array3 및 리턴 요소를 비교합니다.
출력 결과는 다음과 같습니다.
Array
(
[d] => 400
)
중복 키의 효과 : 배열에 중복 키가있을 때 PHP는 이전 키 값 쌍을 자동으로 덮어 씁니다. 마지막 키 값 쌍 만 남습니다. 따라서 array_diff_key ()는 최종 키 이름으로 비교하여 중간 복제물의 값을 무시합니다.
키 이름의 독창성 : Array_diff_key ()는 비교를 위해 키 이름의 독창성에 의존합니다. 배열의 키가 여러 배열에 존재하는 경우 최종 예약 키는 배열의 마지막 발생에서 키 값을 기준으로합니다.
Array_Diff_Key () 함수를 사용하는 경우 배열의 중복 키가 자동으로 중복 제거되며 마지막 키 값 쌍 만 유효합니다. 여러 중복 키를 유지 해야하는 경우 키 값 쌍의 연관 배열과 같은 다른 방법을 값으로 사용하는 것을 고려하십시오.
이 기사가 특히 배열에서 반복 된 키를 다룰 때 array_diff_key () 함수의 동작을 더 잘 이해하는 데 도움이되기를 바랍니다.
이 기사의 코드 예제에는 특정 URL이 포함되지 않지만 실제 개발 프로세스에 유사한 URL 사용법이 관련되어 있으면 URL의 도메인 이름을 필요에 따라 M66.NET 으로 바꿀 수 있습니다.