PHP 버전
4.3+
/* 다른 배열과 키(Key)와 값(Value) 쌍이 동일한 요소를 제외하기 */
$array1 = ['a' => 1, 'b' => 2, 'c' => 3]; // 비교 기준이 되는 배열
$array2 = ['b' => 2, 'c' => 3, 'd' => 4];

$result = array_diff_assoc($array1, $array2);
print_r($result); // Array ( [a] => 1 )

/* 연관 배열 간의 차이(difference) 확인 */
$current_user_info = ['id' => 1, 'name' => 'John', 'age' => 30];
$updated_user_info = ['id' => 1, 'name' => 'John', 'age' => 31];

$differences = array_diff_assoc($updated_user_info, $current_user_info);

if (!empty($differences)) {
    echo '변경된 데이터가 있습니다. 변경된 정보: ';

    foreach ($differences as $key => $value) {
        echo "$key: $value ";
    }
} else {
    echo '변경된 데이터가 없습니다.';
}
// 출력: '변경된 데이터가 있습니다. 변경된 정보: age: 31'

/* 특정 키와 값 쌍을 기준으로 연관 배열에서 요소 제거 */
$original_array = ['id' => 1, 'name' => 'John', 'age' => 30];

$value_to_remove = 'John';

$result = array_diff_assoc($original_array, ['name' => $value_to_remove]);
print_r($result); // Array ( [id] => 1 [age] => 30 )
array_diff_assoc(array $array_1, $array_2, $array_3, ...): array
$array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['a' => 1, 'b' => 2, 'c' => 3];

$result = array_diff_assoc($array1, $array2);
print_r($result); // Array ( )
$array = ['a' => 1, 'b' => 2, 'c' => 3];

$result = array_diff_assoc($array);
print_r($result);

/* 출력:
Array
(
    [a] => 1
    [b] => 2
    [c] => 3
)
*/
$array1 = ['a' => 1, 'b' => 2, 'c' => '3'];  // '3'은 문자열로 저장
$array2 = ['a' => 1, 'b' => 2, 'c' => 3];    // 3은 정수로 저장

$differences = array_diff_assoc($array1, $array2);

print_r($differences) // Array ( )
$array1 = array(0, 1, 2);           // 정수 0, 1, 2
$array2 = array('00', '01', '2');   // 문자열 '00', '01', '2'

$result = array_diff_assoc($array1, $array2);

print_r($result);
/* 출력:
Array
(
    [0] => 0
    [1] => 1
)
*/
$current_permissions = ['read' => true, 'write' => true, 'execute' => false];
$required_permissions = ['read' => true, 'write' => true, 'execute' => true];

$missing_permissions = array_diff_assoc($required_permissions, $current_permissions);

if (!empty($missing_permissions)) {
    echo '사용자는 다음 권한이 부족합니다: ' . implode(', ', array_keys($missing_permissions));
} else {
    echo '권한이 충분합니다.';
}

// 출력: '사용자는 다음 권한이 부족합니다: execute'
$all_options = ['apple' => 1, 'banana' => 2, 'cherry' => 3, 'date' => 4];
$selected_options = ['banana' => 2, 'date' => 4];

$remaining_options = array_diff_assoc($all_options, $selected_options);

echo '선택하지 않은 옵션: ' . implode(', ', array_keys($remaining_options));
// 출력: '선택하지 않은 옵션: apple, cherry'
$committed_files = [
    'file1.txt' => 'hash1',
    'file2.txt' => 'hash2',
    'file3.txt' => 'hash3'
];

$modified_files = [
    'file1.txt' => 'hash1',
    'file3.txt' => 'hash3',
    'file4.txt' => 'hash4'
];

$new_files = array_diff_assoc($modified_files, $committed_files);

if (!empty($new_files)) {
    echo '변경된 파일 목록: ' . implode(', ', array_keys($new_files));
} else {
    echo '변경된 파일이 없습니다.';
}

// 출력: '변경된 파일 목록: file4.txt'