현재 위치: > 최신 기사 목록> 빈 배열이 전달되면 array_diff_key ()는 무엇을 반환합니까?

빈 배열이 전달되면 array_diff_key ()는 무엇을 반환합니까?

M66 2025-06-06

PHP에서 array_diff_key () 함수는 두 개 이상의 배열을 비교하여 다른 배열 키와 다른 첫 번째 배열의 부분을 반환하는 데 사용됩니다. 다음 형식으로 사용됩니다.

 array_diff_key(array $array1, array $array2, array ...$arrays): array

이 기능에 의해 반환 된 결과는 다음과 같습니다. 첫 번째 배열의 모든 키는 다른 배열에 나타나지 않습니다 . 즉, 다른 배열에 키가 존재하지 않는 경우에만 결과에 나타납니다.

그러나 빈 배열이 전달되면 함수의 동작으로 인해 특별한 현상이 발생합니다. 빈 배열을 통과 할 때 어떤 종류의 반환 값 array_diff_key () 가 있을지 논의 해 봅시다.

샘플 코드

 $array1 = ["a" => 1, "b" => 2, "c" => 3];
$array2 = [];

$result = array_diff_key($array1, $array2);
print_r($result);

실행 결과

 Array
(
    [a] => 1
    [b] => 2
    [c] => 3
)

설명하다

두 번째 배열 $ array2가 빈 배열 인 경우 Array_Diff_Key ()는 첫 번째 배열 $ array1 의 모든 키 값 쌍을 직접 반환합니다. 이유는 다음과 같습니다.

  1. Array_Diff_Key () 의 원리는 키 차이에 따라 배열을 반환하는 것입니다.

  2. 두 번째 배열이 비어 있으면 첫 번째 배열의 키와 비교할 키가 없습니다. 따라서 첫 번째 배열의 모든 키는 두 번째 배열에서 찾을 수 없습니다.

  3. 따라서 Array_diff_key ()는 "무엇이든 다르기 때문에"첫 번째 배열의 모든 키 값 쌍을 반환합니다.

이 예에서 두 번째 배열이 비어 있으면 Array_Diff_Key ()가 비교하지 않으며 첫 번째 배열을 직접 반환 할 수 있습니다.

다른 상황

여러 배열이 전달되면 빈 배열이 있으면 Array_Diff_Key () 의 동작은 다른 배열에 있지 않은 첫 번째 배열에서 키를 반환해야합니다. 예를 들어:

 $array1 = ["a" => 1, "b" => 2, "c" => 3];
$array2 = [];
$array3 = ["a" => 100];

$result = array_diff_key($array1, $array2, $array3);
print_r($result);

실행 결과 :

 Array
(
    [b] => 2
    [c] => 3
)

이 예에서 첫 번째 배열 $ array1 의 키 "A"키는 세 번째 배열 $ array3 에 존재하므로 "A"는 리턴 결과에 나타나지 않습니다. "B"와 "C"는 $ array3 에서는 찾을 수 없으므로 보존됩니다.

요약

  • 빈 배열이 array_diff_key () 로 전달되면 첫 번째 배열의 모든 요소가 반환됩니다.

  • 빈 배열에는 다른 배열에 비해 키가 없으므로 모든 키가 다른 어레이에 나타나지 않는 것으로 간주됩니다.

  • 여러 배열이 전달되고 빈 배열이 있으면 Array_Diff_Key () 의 동작은 실제 비교 배열에 따라 결과를 계속 반환합니다.