현재 위치: > 최신 기사 목록> 컨트롤러에서 Array_Diff_Assoc ()를 사용하여 패치 요청에 대한 변경 필드를 감지하십시오.

컨트롤러에서 Array_Diff_Assoc ()를 사용하여 패치 요청에 대한 변경 필드를 감지하십시오.

M66 2025-06-06

PHP 개발에서 HTTP 요청을 처리 할 때 클라이언트가 제출 한 데이터를 현재 서버 측의 데이터와 비교해야합니다. 특히 자원의 일부 필드를 업데이트하는 데 사용되는 패치 요청을 처리 할 때 특히 그렇습니다. 오늘 우리는 컨트롤러에서 Array_Diff_Assoc () 함수를 사용하여 패치 요청에서 변경된 필드를 감지하는 방법을 소개합니다.

Array_Diff_Assoc () 함수는 두 배열을 비교하고 키 이름과 키 값의 차이를 반환하는 데 사용됩니다. 변경된 필드를 감지하는 것이 매우 편리 할 수 ​​있습니다. 패치 요청을 처리 할 때 일반적으로 데이터베이스의 원본 데이터를 사용자가 제출 한 데이터의 일부와 비교하여 업데이트 해야하는 필드를 찾아야합니다.

시나리오를 사용하십시오

사용자 프로파일의 데이터베이스 테이블이 있고 패치 요청을 통해 사용자 정보의 일부를 업데이트하려고합니다. 클라이언트는 업데이트 해야하는 필드 만 제출하며 변경되지 않은 필드는 요청 된 데이터에 포함되지 않습니다. Array_Diff_Assoc () 함수를 사용하여 원본 데이터를 새로 제출 된 데이터와 비교하고 변경된 필드를 찾을 수 있습니다.

단계

1. 원래 데이터 및 패치 요청 데이터를 가져옵니다

먼저 데이터베이스에서 원래 데이터와 패치 요청을 통해 클라이언트가 보낸 데이터를 가져와야합니다. 우리는 어떻게 든 원래 사용자 데이터와 클라이언트가 제출 한 데이터를 가져 왔다고 가정합니다.

 // 이것이 데이터베이스의 원래 사용자 데이터라고 가정합니다.
$originalData = [
    'id' => 1,
    'name' => 'John Doe',
    'email' => 'johndoe@example.com',
    'phone' => '123456789'
];

// 이것이 끝났다고 가정합니다 PATCH 요청 된 제출 데이터
$patchData = [
    'name' => 'John Smith',
    'phone' => '987654321'
];

2. array_diff_assoc ()를 사용하여 데이터를 비교하십시오

이제 Array_diff_assoc ()을 사용하여 변경된 필드를 감지 할 수 있습니다. Array_Diff_Assoc ()는 두 배열의 키와 값을 비교하고 해당 다른 부분을 반환합니다.

 // 사용 array_diff_assoc() 변경 필드를 감지합니다
$changedFields = array_diff_assoc($patchData, $originalData);

// 출력 변경 필드
print_r($changedFields);

3. 변경된 필드를 처리하십시오

array_diff_assoc () 에 의해 반환 된 결과는 변경된 모든 필드를 포함하는 배열입니다. 이 변경된 필드를 기반으로 업데이트를 수행 할 수 있습니다.

 if (!empty($changedFields)) {
    // 변경 필드 처리,예를 들어 데이터베이스를 업데이트하십시오
    foreach ($changedFields as $key => $value) {
        // 여기에서 데이터베이스 업데이트 작업을 수행하십시오
        echo "Field $key has been changed to $value\n";
    }
} else {
    echo "No changes detected.\n";
}

4. URL 교체

요청에서 URL을 처리 해야하는 경우 URL 도메인 이름을 M66.NET 으로 바꾸십시오. 예를 들어, URL에 요청을 보내야하는 경우 다음 코드를 사용할 수 있습니다.