php에서 array_diff_uassoc은 둘 이상의 배열을 비교하는 함수입니다. 배열의 값뿐만 아니라 키도 비교됩니다. 이 기능의 핵심 기능은 첫 번째 배열에 존재하지만 다른 배열에 있지 않은 모든 키 값 쌍을 반환하는 것입니다. 사용자 정의 콜백 함수를 통해 키를 비교합니다. Array_diff_uassoc을 적절하게 사용하여 다른 소스의 배열 구조를 비교하기위한 어댑터를 구축 할 수 있습니다.
이 기사에서는 Array_Diff_Uassoc 기능을 사용하여 어댑터를 구축하여 특히 특정 비즈니스 규칙에 따라 주요 이름을 비교해야 할 때 어댑터를 구축하는 방법을 보여줍니다.
array_diff_uassoc ( array $array1 , array $array2 , callable $key_compare_func ) : array
$ array1 : 첫 번째 배열.
$ array2 : 두 번째 배열.
$ key_compare_func : 두 키를 비교하는 데 사용되는 콜백 함수.
이 함수는 $ array1 에 존재하고 $ array2 에 있지 않은 키 값 쌍을 반환합니다. 비교 키는 $ key_compare_func 콜백 함수를 통해 수행됩니다.
콜백 함수 key_compare_func은 두 개의 매개 변수, 즉 두 배열의 키를 허용해야합니다. 반환해야합니다 :
0보다 작은 정수 : 첫 번째 키가 두 번째 키보다 작은 경우;
반환 0 : 두 키가 같으면;
0보다 큰 정수 : 첫 번째 키가 두 번째 키보다 큰 경우.
이 비교 방법은 특정 규칙에 따라 키를 비교해야 할 때 사용하기에 매우 적합합니다.
간단한 예제를 사용하여 Array_Diff_Uassoc 으로 어댑터를 구축하는 방법을 보여주고 다른 소스의 배열 구조를 비교합니다.
두 가지 다른 데이터 소스가 있다고 가정 해 봅시다. 각 데이터 소스는 각각 키 값 쌍 어레이를 포함하고 있으며이 배열의 차이점을 찾으려면 이러한 배열을 비교해야합니다.
<?php
// 첫 번째 배열(원천1)
$array1 = [
'id' => 1,
'name' => 'Alice',
'email' => 'alice@m66.net',
'age' => 28
];
// 두 번째 배열(원천2)
$array2 = [
'id' => 2,
'name' => 'Bob',
'email' => 'bob@m66.net',
'address' => '123 Main St'
];
// 사용자 정의 키 비교 함수
function key_compare($key1, $key2) {
// 두 키가 같으면,반품 0
return strcmp($key1, $key2);
}
// 사용 array_diff_uassoc 배열을 비교하십시오
$diff = array_diff_uassoc($array1, $array2, 'key_compare');
// 출력 차이
print_r($diff);
?>
배열 정의 : 다른 소스의 데이터를 나타내는 두 개의 배열 $ array1 및 $ array2를 정의합니다. 이 배열마다 다른 구조 (예 : 다른 키 이름 및 데이터)가 있습니다.
사용자 정의 키 비교 함수 : key_compare는 strcmp ()를 사용하여 두 키를 비교하는 콜백 함수입니다. 두 키가 같으면 0을 반환하십시오. 그렇지 않으면 해당 비교 결과를 반환하십시오.
Call array_diff_uassoc : array_diff_uassoc 함수를 통해 $ array1 및 $ array2를 비교합니다. 이 시점에서는 맞춤형 키 비교 함수를 기반으로 두 배열의 키의 다른 부분을 찾을 수 있습니다.
출력 차이 : print_r ($ diff)는 두 배열의 차이 부분을 출력합니다.
Array
(
[email] => alice@m66.net
[age] => 28
)
위의 출력은 $ array1 에는 $ array2 에 존재하지 않는 두 개의 키 ( 이메일 및 나이 )가 있음을 보여줍니다. 이것이 우리가 두 배열이라고 부르는 것의 차이 부분입니다.
Array_diff_uassoc을 사용하여 어댑터를 작성하십시오. 어댑터는 다음 시나리오에 특히 적합합니다.
다중 소스 데이터 비교 : 여러 소스에서 데이터를 처리 할 때 다른 구조를 만날 수 있습니다. Array_diff_uassoc을 사용하면 이러한 데이터 소스를 유연하게 비교하고 차이점을 찾을 수 있습니다.
복잡한 데이터 구조 변환 : 때로는 비즈니스 규칙에 따라 데이터를 서로 다른 형식으로 변환해야합니다. Array_diff_uassoc은 불일치 부품을 식별 한 다음 조정하는 데 도움이 될 수 있습니다.
프로파일 비교 : 다른 환경의 구성 파일을 비교할 때 Array_Diff_Uassoc은 특히 이러한 구성의 키 이름 규칙이 다를 때 다른 구성 간의 차이를 쉽게 식별하는 데 도움이 될 수 있습니다.
Array_Diff_Uassoc 은 강력한 PHP 기능으로 사용자 정의 키 비교 함수를 사용하여 다른 소스의 배열을 비교할 때의 차이점을 정확하게 판단 할 수 있습니다. 실제 애플리케이션에서는 다양한 데이터 구조 및 비즈니스 요구에 적응하기 위해 Adapter 모드를 구현할 수 있습니다.
위의 예를 통해 Array_Diff_Uassoc을 사용하여 배열 구조를 비교하고 사용자 정의 규칙을 기반으로 유연한 어댑터 기능을 구현하는 방법을 알 수 있습니다. 이 기사 가이 기능을 더 잘 이해하고 적용하는 데 도움이되기를 바랍니다.