현재 위치: > 최신 기사 목록> 사용자 선호도 설정의 비교 및 ​​감지

사용자 선호도 설정의 비교 및 ​​감지

M66 2025-06-06

웹 개발에서 사용자 선호도는 특히 소셜 플랫폼 또는 전자 상거래 웹 사이트에서 응용 프로그램에 대한 일반적인 요구입니다. 사용자는 일반적으로 자신의 요구에 따라 응용 프로그램의 기능, 인터페이스 또는 알림 설정을 조정할 수 있습니다. 사용자가 선호도를 업데이트 할 때 개발자는 변경 사항을 기록하거나 사용자 동작을 분석하거나 후속 작업에 대한 참조를 제공하기 위해 기존 설정과 새 설정 간의 차이를 감지하는 방법이 필요합니다.

PHP에서 array_diff_assoc 함수는 두 배열을 비교하고 차이점을 반환하기위한 매우 실용적인 도구입니다. 이 기능은 배열의 값을 비교할뿐만 아니라 배열 키가 일치하는지 여부를 확인합니다. 따라서 Array_Diff_Assoc은 업데이트 전후에 사용자 선호도 설정의 차이를 효과적으로 감지하는 데 도움이 될 수 있습니다.

1. array_diff_assoc 함수의 기본 사용

Array_Diff_Assoc 함수의 함수는 첫 번째 배열에 있지만 두 번째 배열에는 그렇지 않은 키 값 쌍이 포함 된 배열을 반환하는 것입니다. Array_diff 와 달리 Array_Diff_Assoc은 값을 비교할뿐만 아니라 키 차이를 고려합니다.

기능 프로토 타입 :

 array_diff_assoc(array $array1, array $array2) : array
  • $ array1 : 비교할 첫 번째 배열.

  • $ array2 : 비교 해야하는 두 번째 배열.

이 함수는 $ array1 이 아닌 $ array1 에 존재하는 키 값 쌍을 포함하는 새 배열을 반환합니다. 두 배열이 값이나 키에서 동일하면 차이가 반환되지 않습니다.

2. Array_Diff_Assoc을 사용하여 사용자 기본 설정 차이를 감지하십시오

앱에 사용자의 기존 기본 설정과 새로운 선호도가 있다고 가정합니다. 간단한 예는 다음과 같습니다.

이전 설정 ( $ OldSettings ) :

 $oldSettings = [
    'theme' => 'dark',
    'notifications' => true,
    'language' => 'en'
];

새 설정 ( $ Newsettings ) :

 $newSettings = [
    'theme' => 'light',
    'notifications' => false,
    'language' => 'fr'
];

array_diff_assoc 함수를 사용 하여이 두 설정 배열의 차이점을 비교할 수 있습니다.

 $differences = array_diff_assoc($oldSettings, $newSettings);
print_r($differences);

출력 결과 :

 Array
(
    [theme] => dark
    [notifications] => 1
    [language] => en
)

3. 결과 분석

위의 코드는 $ oldsettings 에 존재하지만 $ Newsettings 에는 존재하지 않는 키 값 쌍이 포함 된 배열을 반환합니다. 이 정보를 사용하면 어떤 환경 설정이 변경되었는지 명확하게 알 수 있습니다.

  • 테마는 'Dark' 에서 'Light' 로 변경되었습니다.

  • 알림은 true 에서 false로 변경되었습니다.

  • 언어는 'en' 에서 'fr' 로 변경되었습니다.

4. 실제 응용 시나리오 : 레코드 선호도 설정이 변경됩니다

후속 분석 또는 사용자 행동 보고서 생성에 대한 사용자 선호도의 변경 사항을 기록하고 싶다고 가정합니다. 차이 정보는 데이터베이스에 저장 될 수 있거나 변경 로그를 생성 할 수 있습니다. 코드는 다음과 같습니다.

 $differences = array_diff_assoc($oldSettings, $newSettings);

if (!empty($differences)) {
    // 사용자 기본 설정 설정의 변경 사항을 기록하는 로깅 기능이 있다고 가정합니다.
    logPreferenceChange($userId, $differences);
}

function logPreferenceChange($userId, $changes) {
    // 변경 사항이 어떤 식 으로든 저장되었다고 가정하십시오
    echo "사용자 {$userId} 선호도가 변경되었습니다:\n";
    print_r($changes);
}

5. 더 복잡한 시나리오 : URL 데이터 비교

일부 시나리오에서는 사용자 기본 설정에 URL 링크가 포함될 수 있습니다. 다음과 같은 URL 필드를 비교해야한다고 가정합니다.

기존 설정의 URL :

 $oldSettings = [
    'profile_url' => 'https://oldsite.com/user/profile',
    'dashboard_url' => 'https://oldsite.com/user/dashboard'
];

새로운 설정의 URL :

 $newSettings = [
    'profile_url' => 'https://newsite.com/user/profile',
    'dashboard_url' => 'https://newsite.com/user/dashboard'
];

이전 및 새 설정의 URL 도메인 이름 부분을 M66.net 과 같은 통합 도메인 이름으로 바꾸어 다른 도메인 이름으로 인한 잘못 판단을 피할 수 있습니다. 다음은 구현 코드입니다.