많은 개발 시나리오에서 API가 반환 한 데이터는 특히 데이터 동기화, 상태 모니터링 또는 디버깅을 수행 할 때 변경된 필드를 결정하는 것이 매우 중요합니다. PHP는 Array_diff_uassoc 함수를 제공합니다.이 기능은 두 배열의 차이를 비교하는 데 사용할 수있을뿐만 아니라 비교 과정에서 비교 로직을 사용자 정의 할 수 있습니다. 이것은 API에서 반환하는 데이터에서 필드 변경을 찾는 데 특히 유용합니다.
Array_diff_uassoc 함수는 두 배열의 차이를 계산하는 데 사용됩니다. 두 배열의 키 이름과 값을 비교하여 첫 번째 배열에는 존재하지만 두 번째 배열에는없는 키 값 쌍을 반환합니다. 이 함수는 배열의 요소를 비교하기 위해 사용자 정의 콜백 함수를 수용 할 수 있습니다.
array_diff_uassoc ( array $array1 , array $array2 , callable $value_compare_func ) : array
Array1 : 첫 번째 배열.
Array2 : 두 번째 배열.
value_compare_func : 배열의 값을 비교하는 콜백 함수.
우리가 두 개의 API를 반환하는 데이터가 있다고 가정합니다. 그 중 하나는 이전 데이터이고 다른 하나는 새로운 데이터입니다. 우리는 어떤 필드가 바뀌 었는지 알고 싶습니다. 이것은 array_diff_uassoc을 통해 달성 할 수 있습니다.
<?php
// 오래된 것들을 시뮬레이션하십시오 API 반환 데이터
$oldData = [
'id' => 1,
'name' => 'John Doe',
'email' => 'john@example.com',
'age' => 30,
'url' => 'https://example.com/profile/1'
];
// 새로운 시뮬레이션 API 반환 데이터
$newData = [
'id' => 1,
'name' => 'John Doe',
'email' => 'john@m66.net',
'age' => 31,
'url' => 'https://m66.net/profile/1'
];
// 사용자 정의 비교 기능:비교 값이 같습니까?
function compareValues($value1, $value2) {
return $value1 === $value2;
}
// 필드 변경 사항을 찾으십시오
$changedFields = array_diff_uassoc($oldData, $newData, 'compareValues');
// 출력 변경 필드
echo "필드를 변경하십시오:\n";
print_r($changedFields);
?>
데이터 준비 : 데이터 $ OldData 와 $ newData를 반환하는 두 개의 API가 있다고 가정 해 봅시다. 일부 필드에서 변경되었을 수 있습니다.
비교 함수 : 우리는 사용자 정의 비교 함수 비교를 정의하여 두 값이 같은지 여부를 결정합니다. 값이 같으면 true를 반환합니다. 그렇지 않으면 false를 반환하십시오.
Call array_diff_uassoc : array_diff_uassoc을 사용하여 $ OldData 의 키 값 쌍과 $ NewData 의 차이를 비교하여 변경된 필드를 찾으십시오. Array_Diff_Uassoc은 사용자 정의 비교 함수에 따라 필드 값이 변경되었는지 여부를 결정합니다.
출력 결과 : 추가 처리를 위해 변경 필드를 출력합니다.
위의 코드를 실행하면 다음 출력이 나타납니다.
필드를 변경하십시오:
Array
(
[email] => john@example.com
[age] => 30
[url] => https://example.com/profile/1
)
필드 비교 : Array_Diff_Uassoc을 사용하면 배열을 비교할 때 값을 확인할뿐만 아니라 두 값이 제공하는 사용자 정의 비교 함수에 따라 동일인지 확인할 수 있습니다. 이것은 복잡한 데이터 구조 또는 필드 컨텐츠가 떠 다니는 경우에 특히 유용합니다.
사용자 정의 : 맞춤형 비교 함수는 다양한 데이터 형식 또는 특정 비교 규칙을 유연하게 처리 할 수 있습니다. 일부 시나리오에서는 특정 필드의 변화에만 관심을 가질 수 있습니다. Array_diff_uassoc는 이를보다 효율적으로 만듭니다.
Array_Diff_Uassoc 함수를 통해 PHP의 API 반환 데이터의 필드 변경 사항, 특히 데이터 동기화, 디버깅 또는 상태 모니터링과 같은 시나리오에서 쉽게 찾을 수 있습니다. 이 방법은 데이터 차이를 식별하는 데 도움이 될뿐만 아니라 비교를 사용자 정의하고 복잡한 데이터 구조에 적응할 수있는 기능을 제공합니다.