현재 위치: > 최신 기사 목록> array_diff_uassoc () 함수의 기본 구문 및 사용 예

array_diff_uassoc () 함수의 기본 구문 및 사용 예

M66 2025-06-06

php에서 array_diff_uassoc ()는 배열을 비교하는 함수이며,이 기능은 둘 이상의 배열을 비교하고 사용자 정의 키 값 비교 규칙을 기반으로 차이 부분을 반환 할 수 있습니다. 이 기능은 키를 기반으로 복잡한 데이터 구조 또는 비교가 필요한 시나리오에서 매우 유용합니다.

1. 기본 구문

 array_diff_uassoc(array $array1, array $array2, callable $key_compare_func): array

매개 변수 설명 :

  • Array1 : 비교 해야하는 첫 번째 배열.

  • Array2 : 비교 해야하는 두 번째 배열은 여러 배열 일 수 있습니다.

  • key_compare_func : 키를 배열과 비교하고 정수를 반환 해야하는 콜백 함수. 리턴 값은 키 값의 순서를 결정합니다. 음수를 반환하면 첫 번째 키가 두 번째 키보다 작음을 의미합니다. 0을 반환하면 두 키가 동일하다는 것을 의미합니다. 양수를 반환하면 첫 번째 키가 두 번째 키보다 큽니다.

반환 값 :이 함수는 다른 요소, 즉 첫 번째 배열에는 존재하지만 두 번째 배열에는없는 요소가 포함 된 배열을 반환하며 비교는 사용자 정의 키 값 규칙을 기반으로합니다.

2. 실제 적용 사례

$ 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 에서 찾을 수 없기 때문에 반환됩니다.

3. 주목할만한 것들

  • Array_diff_uassoc () 함수는 값을 비교할뿐만 아니라 키의 사용자 정의 규칙을 기반으로 비교합니다. 사용자 정의 키 비교 규칙이 필요하지 않은 경우 array_diff_assoc ()를 사용할 수 있습니다.

  • 콜백 함수가 비합리적인 방식으로 키를 비교하면, 특히 많은 배열 요소가 있거나 복잡한 배열 요소가있을 때 잘못된 결과로 이어질 수 있습니다.

  • 이 함수는 원래 배열을 변경하지 않고 새 배열을 반환합니다.

4. 시나리오를 사용하십시오

Array_diff_uassoc ()는 다음 시나리오에서 일반적으로 사용됩니다.

  • 두 개의 어레이를 동일한 키이지만 다른 값으로 비교하십시오.

  • 사용자 정의 키를 기반으로 규칙을 비교 해야하는 경우 두 배열의 차이점을 찾으십시오.

  • 특히 복잡한 키 값 쌍이 관련된 경우 데이터 처리, 분석 또는 중복 제거에 사용됩니다.

5. 실제 URL 예제와 결합

코드에 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);
?>

출력 :