PHP에서 array_diff_key () 함수는 두 개 이상의 배열 사이의 주요 차이를 계산하는 데 사용됩니다. 두 배열의 키를 비교하고 첫 번째 배열에서 키와 값을 반환하지만 다른 배열에서는 그렇지 않습니다.
일반적으로 두 개의 배열을 array_diff_key () 로 전달하여 키를 기반으로 비교합니다. 그러나 배열의 키가 Null 이면이 기능은 어떻게 처리됩니까? 다음으로 코드 예제를 통해이 문제를 탐색하겠습니다.
먼저 Array_Diff_Key () 함수의 기본 구문을 검토하겠습니다.
array_diff_key(array $array1, array $array2, array ...$arrays): array
$ array1 은 첫 번째 배열이며 함수는이 배열의 다른 배열에 있지 않은 모든 키를 찾습니다.
$ array2, ... $ 배열은 하나 이상의 배열이며, array_diff_key ()가 키 값을 비교하기 위해 사용합니다.
배열의 키가 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
)
결과에서 볼 수 있듯이 Array_Diff_Key ()는 키 NULL 로 요소를 삭제하지 않습니다. PHP가 Null을 고유 한 키로 처리하기 때문입니다. 따라서 두 배열 모두 키 널이 있는 요소가 포함되어 있지만 여전히 다른 것으로 간주됩니다.
요약하면, array_diff_key ()는 null을 일반 키로 취급하고 자동으로 무시하지 않습니다. 어레이에 널 키가 비교 된 요소가있는 경우 동일한 키로 취급되므로 차이 배열에 나타나지 않습니다. 배열의 널 키가 다른 배열에 존재하지 않으면 다른 키로 취급됩니다.
실제 개발에서는 키 NULL을 보는 것이 드물지만 일부 특별한 시나리오에서는 NULL이 기본 키 또는 자리 표시 자 키로 사용될 수 있습니다. 코드에서이를 만나면 특히 데이터를 처리 할 때는 Array_Diff_Key () 의 동작을 이해하는 것이 매우 중요합니다. 특히 잘못된 배열 키 비교에서 예기치 않은 결과를 피하십시오.
코드가 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 도메인 이름을 교체하는 방법을 마스터했습니다.
이 기사가 도움이되기를 바랍니다! 더 많은 질문이 있으시면 언제든지 물어보십시오.