현재 위치: > 최신 기사 목록> API의 페이로드 콘텐츠 차이 비교

API의 페이로드 콘텐츠 차이 비교

M66 2025-06-06

API를 개발할 때는 종종 차이를 결정하기 위해 두 페이로드의 내용을 비교해야합니다. 예를 들어, 사용자 정보를 업데이트 할 때 새 데이터와 이전 데이터의 차이점을 비교하거나 인터페이스를 디버깅 할 때 반환 된 데이터가 예상 데이터와 일치하는지 확인하십시오. PHP는 매우 유용한 기능 인 Array_Diff_Assoc 을 제공하므로 두 배열의 차이를 비교할 수 있습니다. 다음은이 기능을 사용하여 페이로드 내용을 비교하는 방법에 대한 자세한 설명입니다.

array_diff_assoc 함수는 무엇입니까?

Array_Diff_Assoc 는 PHP의 내장 기능으로 두 배열의 키 값 쌍을 비교하여 첫 번째 배열에는 존재하지만 두 번째 배열에는 존재하지 않는 요소를 찾습니다. Array_diff 와 달리 Array_Diff_Assoc은 값을 비교할뿐만 아니라 키 이름도 비교합니다. 요소는 키 이름과 값이 일치하지 않는 경우에만 다른 것으로 간주됩니다.

기능 프로토 타입 :

 array_diff_assoc(array $array1, array $array2): array
  • $ array1 : 비교를위한 참조 배열로서 첫 번째 배열.

  • $ array2 : 첫 번째 배열과 비교하여 두 번째 배열.

이 함수는 $ array1 에 존재하지만 $ array2 에 있지 않은 요소를 포함하는 배열을 반환합니다.

API 페이로드 컨텐츠 비교를 구현하십시오

JSON 형식의 두 개의 페이로드가 다음과 같이 형식으로 기존 및 새로운 사용자 데이터를 각각 나타냅니다.

Old Data (old_payload.json)

 {
    "user_id": 12345,
    "name": "장 산",
    "email": "zhangsan@m66.net",
    "phone": "1234567890"
}

새로운 데이터 (new_payload.json)

 {
    "user_id": 12345,
    "name": "장 산",
    "email": "zhangsan@m66.net",
    "phone": "0987654321"
}

이 두 JSON 페이로드의 데이터 차이를 비교하고 키 값 쌍이 일관된 지 확인하려고합니다. 여기서는 Array_diff_assoc을 사용하여 구현할 수 있습니다.

코드 구현

1 단계 : JSON 데이터를 읽고 디코딩합니다

먼저,이 두 JSON 데이터를 PHP 배열로 변환해야합니다.

 <?php

// 오래된 데이터
$old_payload = '{"user_id": 12345, "name": "장 산", "email": "zhangsan@m66.net", "phone": "1234567890"}';
// 새로운 데이터
$new_payload = '{"user_id": 12345, "name": "장 산", "email": "zhangsan@m66.net", "phone": "0987654321"}';

// 디코딩 JSON 데이터는입니다 PHP 정렬
$old_data = json_decode($old_payload, true);
$new_data = json_decode($new_payload, true);

// 输出정렬查看结果
var_dump($old_data);
var_dump($new_data);
?>

2 단계 : array_diff_assoc을 사용하여 차이를 비교하십시오

Array_diff_assoc 함수를 사용하면 두 배열의 차이를 쉽게 찾을 수 있습니다.

 <?php

// 차이를 얻으십시오
$differences = array_diff_assoc($old_data, $new_data);

// 출력 차이
if (!empty($differences)) {
    echo "데이터 차이:\n";
    print_r($differences);
} else {
    echo "데이터 일관성,차이가 없습니다。\n";
}
?>

실행 결과 :

 데이터 차이:
Array
(
    [phone] => 1234567890
)

위에서 볼 수 있듯이 결과는 기존 데이터와 새 데이터에서 전화 값이 다르다는 것을 보여줍니다. 이전 데이터에서 전화 값이 1234567890전화 값을 보여줍니다. 이것이 바로 우리가 비교하기를 희망하는 차이입니다.

응용 프로그램 시나리오

  • API 디버깅 : API를 개발할 때 인터페이스에서 반환 된 데이터를 예상 결과와 비교해야 할 수도 있습니다. Array_diff_assoc을 사용하여 차이점을 빠르게보고 개발자가 문제를 찾도록 도와줍니다.

  • 데이터 업데이트 : 사용자 프로필 업데이트 시나리오 에서이 방법을 사용하여 신규 데이터와 이전 데이터의 차이점을 비교하여 변경된 필드를 결정할 수 있습니다.

  • 로깅 : 사용자 동작 또는 데이터 변경 로그를 기록 할 때는 데이터 변경의 특정 내용을 이해하여 후속 분석을 용이하게합니다.