PHP에서 array_diff_uassoc 함수는 두 배열의 차이를 계산하는 데 사용됩니다. 값을 기준으로 비교할 수있을뿐만 아니라 키 비교 방법을 사용자 정의 할 수 있습니다. 이 기능은 데이터베이스 결과 세트 및 배열 데이터를 비교하는 데 매우 유용합니다. 특히 데이터 비교, 필터링 등을 수행 할 때.
이 기사는 예제를 사용하여 Array_Diff_Uassoc 함수를 사용하여 데이터베이스 결과 세트를 다른 배열 데이터와 비교하고 차이점을 보여주는 방법을 보여줍니다.
Array_diff_uassoc 함수는 키 이름과 두 개 이상의 배열의 주요 값의 차이를 비교하는 데 사용됩니다. Array_Diff_Assoc 함수와 달리 Array_Diff_Uassoc을 사용하면 키를 비교하기 위해 사용자 정의 비교 함수를 지정할 수 있습니다. 이 함수의 구문은 다음과 같습니다.
array_diff_uassoc(array $array1, array $array2, callable $key_compare_func): array
$ array1 : 원래 데이터를 포함하는 첫 번째 배열.
$ array2 : 첫 번째 배열과 비교하는 데 사용되는 두 번째 배열.
$ key_compare_func : 두 키를 비교하는 콜백 함수.
이 함수는 차이, 즉 $ array1 에 존재하지만 $ array2 에 존재하지 않는 요소를 포함하는 배열을 반환합니다.
사용자의 ID 및 이름을 저장하는 데이터베이스가 있다고 가정하고 데이터베이스와 비교하려는 데이터를 저장하는 PHP 배열도 얻습니다. 우리의 목표는 데이터베이스의 배열에 포함되지 않은 데이터를 찾는 것입니다.
먼저 데이터베이스에서 결과 세트를 얻습니다.
<?php
// 데이터베이스 결과 세트 시뮬레이션
$databaseResult = [
1 => 'Alice',
2 => 'Bob',
3 => 'Charlie',
4 => 'David',
];
// 시뮬레이션PHP배열 데이터
$inputArray = [
1 => 'Alice',
3 => 'Charlie',
5 => 'Eve',
];
// 사용자 정의 비교 기능:핵심 값이 동일한지 비교하십시오
function keyCompare($key1, $key2) {
return $key1 - $key2;
}
?>
위의 코드에서는 데이터베이스에 의해 반환 된 결과 세트 $ $ Databaseresult 와 비교할 배열 $ inputarray를 시뮬레이션합니다. 우리의 목표는 array_diff_uassoc 함수를 사용하여 데이터베이스 결과 세트에없는 $ inputArray 의 요소를 찾는 것입니다.
다음으로 Array_Diff_Uassoc을 사용하여 $ DatabaserEsult 및 $ inputArray를 비교하십시오.
<?php
// 사용 array_diff_uassoc 배열 차이 비교
$diff = array_diff_uassoc($inputArray, $databaseResult, 'keyCompare');
// 출력 차이 결과
print_r($diff);
?>
이 예에서 array_diff_uassoc은 키 이름을 기반으로 $ inputArray 의 요소와 $ databaseresult의 요소를 비교하고 $ inputArray 에 포함 된 요소 배열을 반환하지만 $ databaseresult 에는 그렇지 않습니다.
위 코드를 실행할 때 결과는 다음과 같습니다.
Array
(
[5] => Eve
)
이는 배열 $ inputArray 에서 ID 5가있는 사용자 "Eve"가 데이터베이스 결과 세트 $ DatabaserEsult 에 나타나지 않음을 나타냅니다. ID 1이있는 "Alice"및 ID 3의 "Charlie"와 같은 다른 요소는 데이터베이스에 존재하므로 차별 결과에는 나타나지 않습니다.
PHP의 array_diff_uassoc 함수를 사용하면 데이터베이스 결과 세트와 배열 데이터를 쉽게 비교하여 차이를 찾을 수 있습니다. 실제 개발 에서이 방법은 데이터 비교, 필터링 및 데이터 동기화와 같은 시나리오에서 매우 실용적입니다.
또한 사용자 정의 비교 함수를 통해 데이터 필터링 및 처리를보다 정확하게 수행하기 위해 필요에 따라 주요 값의 차이를 유연하게 비교할 수 있습니다.
URL 관련 도메인 이름이 샘플 코드 (예 : 데이터베이스 쿼리에서 반환 된 링크)에 관련된 경우 다음과 같이 M66.net 으로 바꾸십시오.