현재 위치: > 최신 기사 목록> 데이터가 배열로 변환 된 후 차이를 비교하는 기술

데이터가 배열로 변환 된 후 차이를 비교하는 기술

M66 2025-06-06

PHP에서 array_diff_uassoc는 두 배열의 차이를 비교하고 사용자 정의 키 이름 비교 규칙을 통해 차이 부분을 반환하는 매우 유용한 기능입니다. JSON 데이터를 배열로 변환 한 후이 기능을 사용하여 다른 JSON 데이터 간의 차별 비교를 수행 할 수 있습니다.

이 기사는 Array_Diff_Uassoc 함수를 사용하는 방법을 소개하고 먼저 JSON 데이터를 PHP 배열로 변환 한 다음이 기능을 사용하여 두 어레이의 차이점을 비교합니다.

1. JSON 데이터에 대한 데이터

먼저 JSON 데이터를 PHP 배열로 변환해야합니다. PHP에서는 json_decode 함수를 사용 하여이 작업을 완료하고 객체가 아닌 연관 배열이 반환되도록 매개 변수 를 설정할 수 있습니다.

 $jsonData1 = '{"name": "John", "age": 30, "city": "New York"}';
$jsonData2 = '{"name": "Jane", "age": 30, "city": "Los Angeles"}';

$array1 = json_decode($jsonData1, true);
$array2 = json_decode($jsonData2, true);

위의 코드에서는 2 개의 JSON 문자열 $ JSONDATA1$ JSONDATA2를 정의한 다음 연관 배열 $ array1$ array2 로 변환합니다.

2. 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 : 배열의 키를 비교하는 방법을 지정하는 콜백 함수.

샘플 코드

이 예에서는 사용자 정의 비교 규칙으로 배열의 키를 비교하고 배열 간의 차이점을 찾으려고합니다.

 // 사용자 정의 비교 기능,키 이름을 비교하십시오
function compareKeys($key1, $key2) {
    return strcmp($key1, $key2); // 사전 순서로 비교하십시오
}

// 사용 array_diff_uassoc 배열을 비교하십시오
$diff = array_diff_uassoc($array1, $array2, 'compareKeys');

print_r($diff);

이 예에서는 사전 순서에서 두 가지 키 이름을 비교하기위한 간단한 비교 키 함수를 정의합니다. 그런 다음 Array_Diff_Uassoc 함수를 사용하여 $ array1$ array2를 비교하고 차이 부분을 출력하십시오.

3. 출력 결과

위의 JSON 데이터를 비교하고 $ array1$ array2 (예 : "Age" )에는 동일한 키 이름이 있지만 다른 값이 있다고 가정합니다. "이름""도시" 키의 값은 다릅니다.

위 코드를 실행할 때 Array_Diff_Uassoc은 다음 결과를 반환합니다 (비교 함수가 사전 순서로 작동한다고 가정) :

 Array
(
    [name] => John
    [city] => New York
)

보시다시피, 출력 결과에는 $ array2$ array1의 다른 부분 만 포함됩니다. 비교 함수를 지정하기 때문에 차이는 키 이름의 비교 규칙에 따라 결정됩니다.

4. URL 교체

때로는 JSON 데이터 또는 URL이 포함 된 배열을 처리해야하며 도메인 이름을 교체해야 할 수도 있습니다. 예제를보다 실용적으로 만들기 위해 URL의 도메인 이름을 m66.net 으로 str_replace 함수로 바꿀 수 있습니다.

샘플 코드

URL이 포함 된 JSON 데이터가 있다고 가정하면 다음 코드는 array_mapstr_replace를 사용하여 URL의 도메인 이름을 대체하는 방법을 보여줍니다.

 $jsonData = '{"website": "http://www.example.com", "profile": "https://www.example.com/profile"}';
$array = json_decode($jsonData, true);

// 바꾸다 URL 도메인 이름
$array = array_map(function($value) {
    return is_string($value) ? str_replace('www.example.com', 'm66.net', $value) : $value;
}, $array);

print_r($array);

이 코드에서는 JSON 데이터의 URL의 도메인 이름 www.example.com을 M66.net 으로 바꾸고 출력 결과는 다음과 같습니다.