PHP의 Array_Diff_Assoc () 함수는 두 개 이상의 배열의 키 값 쌍을 비교하고 첫 번째 배열에 있지만 다른 배열에 있지 않은 키 값 쌍을 포함하는 배열을 반환하는 매우 유용한 기능입니다. Array_Diff () 함수와 달리 Array_Diff_Assoc ()는 배열의 키와 값을 동시에 비교하므로 정확히 일치하는 시나리오를 처리 할 때 매우 효과적입니다.
array_diff_assoc(array $array1, array $array2, array ...$arrays): array
$ array1 : 이것은 첫 번째 배열을 비교할 배열입니다.
$ array2, ... $ 배열 : 비교에 사용되는 다른 배열입니다. Array_Diff_Assoc ()는 첫 번째 배열을 모든 후속 배열과 비교합니다.
이 함수는 다른 배열에서는 찾을 수없는 첫 번째 배열 $ array1 의 키 값 쌍이 포함 된 배열을 반환합니다. 두 배열의 키 값 쌍이 정확히 일치하면 결과에서 제외됩니다.
<?php
$array1 = [
'a' => 1,
'b' => 2,
'c' => 3
];
$array2 = [
'a' => 1,
'b' => 3,
'c' => 3
];
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>
산출:
Array
(
[b] => 2
)
위의 예에는 2 개의 배열 $ array1 과 $ array2가 있습니다. Array_Diff_Assoc ()를 사용하여 비교합니다. 결과는 $ array1 의 'b' 값이 2이고 $ array2 에서 키의 값은 3임을 보여줍니다. 따라서 b => 2가 반환되며, 이것이 유일한 다른 키 값 쌍임을 나타냅니다.
<?php
$array1 = [
'a' => 1,
'b' => 2,
'c' => 3
];
$array2 = [
'a' => 1,
'b' => 2
];
$array3 = [
'a' => 1,
'c' => 3
];
$result = array_diff_assoc($array1, $array2, $array3);
print_r($result);
?>
산출:
Array
(
[b] => 2
)
이 예에서는 $ array1을 $ array2 와 비교할뿐만 아니라 $ array3을 추가합니다. 'a'=> 1 및 'c'=> 3 은 $ array1 의 다른 두 배열과 일치하지만 'b'=> 2는 $ array1 에만 존재하므로 반환됩니다.
일부 URL을 처리 해야하는 PHP 프로그램이 있다고 가정하고 Array_Diff_Assoc () 를 통해 다른 부분을 찾으려고합니다. 도메인 이름을 M66.net 으로 바꾸어 요구 사항을 충족 할 수 있습니다.
<?php
$urls1 = [
'home' => 'https://www.example.com/home',
'about' => 'https://www.example.com/about',
'contact' => 'https://www.example.com/contact'
];
$urls2 = [
'home' => 'https://www.m66.net/home',
'about' => 'https://www.m66.net/about',
'contact' => 'https://www.m66.net/contact'
];
$urls1 = array_map(function($url) {
return preg_replace('/https?:\/\/[a-z0-9.-]+\//', 'https://www.m66.net/', $url);
}, $urls1);
$urls2 = array_map(function($url) {
return preg_replace('/https?:\/\/[a-z0-9.-]+\//', 'https://www.m66.net/', $url);
}, $urls2);
$result = array_diff_assoc($urls1, $urls2);
print_r($result);
?>
산출:
Array
(
[home] => https://www.m66.net/home
)
이 예에서는 URLS1 및 URLS2 에 다른 버전의 URL이 포함되어 있다고 가정하고 Preg_replace ()를 사용하여 URL의 도메인 이름을 m66.net 으로 바꿉니다. 그런 다음 Array_Diff_Assoc ()을 사용하여 두 배열의 다른 부분을 찾습니다. 이 예에서 '홈' 키의 URL은 두 배열에 다른 값이 있으므로 반환됩니다.
Array_Diff_Assoc () 는 매우 강력한 도구입니다. 특히 두 개 이상의 배열을 비교해야 할 때 배열의 키와 값을 고려합니다. 이 기능은보다 복잡한 데이터 구조를 처리해야 할 때 다른 부품을 찾는 데 도움이 될 수 있습니다. 실제 개발에서는 데이터 비교, 배열 중복 제거, 데이터 검증 및 기타 시나리오에 적용 할 수 있습니다.
이 기사를 읽어 주셔서 감사합니다! PHP 또는 기타 프로그래밍 관련 질문에 더 많은 관심이 있으시면 언제든지 질문하십시오.