현재 위치: > 최신 기사 목록> 배열 키가 null 일 때 Array_diff_key ()는 어떻게 처리됩니까?

배열 키가 null 일 때 Array_diff_key ()는 어떻게 처리됩니까?

M66 2025-06-06

PHP에서 array_diff_key () 함수는 두 개 이상의 배열 사이의 주요 차이를 계산하는 데 사용됩니다. 두 배열의 키를 비교하고 첫 번째 배열에서 키와 값을 반환하지만 다른 배열에서는 그렇지 않습니다.

일반적으로 두 개의 배열을 array_diff_key () 로 전달하여 키를 기반으로 비교합니다. 그러나 배열의 키가 Null 이면이 기능은 어떻게 처리됩니까? 다음으로 코드 예제를 통해이 문제를 탐색하겠습니다.

1. array_diff_key () 함수의 기본 사용

먼저 Array_Diff_Key () 함수의 기본 구문을 검토하겠습니다.

 array_diff_key(array $array1, array $array2, array ...$arrays): array
  • $ array1 은 첫 번째 배열이며 함수는이 배열의 다른 배열에 있지 않은 모든 키를 찾습니다.

  • $ array2, ... $ 배열은 하나 이상의 배열이며, array_diff_key ()가 키 값을 비교하기 위해 사용합니다.

2. 키는 null 입니다

배열의 키가 null 일 때 array_diff_key () 가 어떻게 행동하는지 살펴 보겠습니다. 다음 예를 고려하십시오.

 <?php
$array1 = [
    null => 'value1',
    'key2' => 'value2',
    'key3' => 'value3'
];

$array2 = [
    null => 'value4',
    'key2' => 'value5'
];

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

print_r($result);
?>

이 예에는 두 개의 배열 $ array1$ array2가 있습니다. 그중에서도 두 배열 모두 키 이있는 요소가 포함되어 있습니다. 코드를 실행 한 후 결과는 다음과 같습니다.

 Array
(
    [key3] => value3
)

3. 설명

결과에서 볼 수 있듯이 Array_Diff_Key ()는NULL 로 요소를 삭제하지 않습니다. PHP가 Null을 고유 한 키로 처리하기 때문입니다. 따라서 두 배열 모두 키 널이 있는 요소가 포함되어 있지만 여전히 다른 것으로 간주됩니다.

요약하면, array_diff_key ()는 null을 일반 키로 취급하고 자동으로 무시하지 않습니다. 어레이에 키가 비교 된 요소가있는 경우 동일한 키로 취급되므로 차이 배열에 나타나지 않습니다. 배열의 키가 다른 배열에 존재하지 않으면 다른 키로 취급됩니다.

4. 실제 시나리오에서의 응용

실제 개발에서는 키 NULL을 보는 것이 드물지만 일부 특별한 시나리오에서는 NULL이 기본 키 또는 자리 표시 자 키로 사용될 수 있습니다. 코드에서이를 만나면 특히 데이터를 처리 할 때는 Array_Diff_Key () 의 동작을 이해하는 것이 매우 중요합니다. 특히 잘못된 배열 키 비교에서 예기치 않은 결과를 피하십시오.

5. URL 예제

코드가 URL과 관련하여 모든 도메인 이름을 M66.net 으로 바꿔야하는 경우 간단한 코드 예는 다음과 같습니다.

 <?php
$url = "https://www.example.com/path/to/resource";

$new_url = preg_replace('/https?:\/\/[^\/]+/', 'https://m66.net', $url);

echo $new_url;
?>

이 코드는 URL의 도메인 이름 부분을 M66.net 으로 대체하여 도메인 이름이 항상 일관되도록합니다.

이 기사를 통해 array_diff_key () 함수가 키가 무효 인 상황을 처리하는 방법에 대한 명확한 이해를 가져야하며 코드에서 URL 도메인 이름을 교체하는 방법을 마스터했습니다.

이 기사가 도움이되기를 바랍니다! 더 많은 질문이 있으시면 언제든지 물어보십시오.