php에서 array_diff_uassoc ()는 배열을 비교하는 함수이며,이 기능은 둘 이상의 배열을 비교하고 사용자 정의 키 값 비교 규칙을 기반으로 차이 부분을 반환 할 수 있습니다. 이 기능은 키를 기반으로 복잡한 데이터 구조 또는 비교가 필요한 시나리오에서 매우 유용합니다.
array_diff_uassoc(array $array1, array $array2, callable $key_compare_func): array
매개 변수 설명 :
Array1 : 비교 해야하는 첫 번째 배열.
Array2 : 비교 해야하는 두 번째 배열은 여러 배열 일 수 있습니다.
key_compare_func : 키를 배열과 비교하고 정수를 반환 해야하는 콜백 함수. 리턴 값은 키 값의 순서를 결정합니다. 음수를 반환하면 첫 번째 키가 두 번째 키보다 작음을 의미합니다. 0을 반환하면 두 키가 동일하다는 것을 의미합니다. 양수를 반환하면 첫 번째 키가 두 번째 키보다 큽니다.
반환 값 :이 함수는 다른 요소, 즉 첫 번째 배열에는 존재하지만 두 번째 배열에는없는 요소가 포함 된 배열을 반환하며 비교는 사용자 정의 키 값 규칙을 기반으로합니다.
$ array1 및 $ array2의 두 배열이 있다고 가정 해 봅시다. 키가 다른 두 배열의 부분을 찾고자합니다.
<?php
// 두 배열을 정의합니다
$array1 = [
"a" => 1,
"b" => 2,
"c" => 3
];
$array2 = [
"a" => 1,
"b" => 2,
"d" => 4
];
// 사용자 정의 키 비교 함수
function custom_key_compare($key1, $key2) {
return strcmp($key1, $key2); // 사용 strcmp 비교 키
}
// 사용 array_diff_uassoc 배열을 비교하십시오
$result = array_diff_uassoc($array1, $array2, 'custom_key_compare');
// 출력 결과
print_r($result);
?>
출력 :
Array
(
[c] => 3
)
이 예에서는 두 개의 배열 $ array1 및 $ array2를 정의합니다. $ array1 에는 키 "A" , "B" 및 "C" 가 포함되어 있고 $ array2에는 키 "A" , "B" 및 "D" 가 포함되어 있습니다. array_diff_uassoc () 함수를 사용하는 경우 Custom_key_compare () 함수는 배열 키를 비교하는 데 사용됩니다. 이 예에서, 키 "C" 에 해당하는 값 3은 $ array1 에 존재하지만 $ array2 에서 찾을 수 없기 때문에 반환됩니다.
Array_diff_uassoc () 함수는 값을 비교할뿐만 아니라 키의 사용자 정의 규칙을 기반으로 비교합니다. 사용자 정의 키 비교 규칙이 필요하지 않은 경우 array_diff_assoc ()를 사용할 수 있습니다.
콜백 함수가 비합리적인 방식으로 키를 비교하면, 특히 많은 배열 요소가 있거나 복잡한 배열 요소가있을 때 잘못된 결과로 이어질 수 있습니다.
이 함수는 원래 배열을 변경하지 않고 새 배열을 반환합니다.
Array_diff_uassoc ()는 다음 시나리오에서 일반적으로 사용됩니다.
두 개의 어레이를 동일한 키이지만 다른 값으로 비교하십시오.
사용자 정의 키를 기반으로 규칙을 비교 해야하는 경우 두 배열의 차이점을 찾으십시오.
특히 복잡한 키 값 쌍이 관련된 경우 데이터 처리, 분석 또는 중복 제거에 사용됩니다.
코드에 URL 작업이 포함되어야하고 URL의 도메인 이름을 M66.net 으로 바꾸려고하려면 다음 코드를 참조 할 수 있습니다.
<?php
// 포함을 정의하십시오 URL 배열
$urls = [
"https://www.example.com/page1",
"https://www.example.com/page2",
"https://www.example.com/page3"
];
// 사용 array_map 그리고 정기적 인 교체 URL 도메인 이름
$updatedUrls = array_map(function($url) {
return preg_replace('/https:\/\/www\..+\.com/', 'https://m66.net', $url);
}, $urls);
// 교체 후 결과를 출력하십시오
print_r($updatedUrls);
?>
출력 :