PHP는 다양한 기능을 수행하는 내장 함수들을 제공하고 있습니다. 그중에서 array_diff()는 PHP에 미리 정의되어 있는(predefined) 함수로, 두 개 이상의 배열 간의 차이를 계산할 때 사용됩니다. 만약 이 함수를 두 개의 배열과 함께 사용하면, 첫 번째 배열에는 존재하지만 다른 배열에는 없는 모든 요소를 담고 있는 배열을 반환합니다.
즉, 이 함수는 배열 내부에 들어 있는 값(value)을 기준으로 두 개 이상의 배열 사이의 차이를 계산합니다.
사용 예제
<?php
$myarray1 = array('c', 'd', 'j', 'k', 'c', 'd', 'c');
$myarray2 = array('j', 'k', 'd');
print_r(array_diff($myarray1, $myarray2));
?>
실행 결과
Array
(
[0] => c
[4] => c
[6] => c
)
주의 사항
1. 문자열 형태로 비교
array_diff()는 요소들을 문자열(string) 표현으로 변환하여 비교합니다. 따라서 숫자 2와 문자열 '2'는 이 함수에게 동일한 값으로 취급됩니다.
2. 중복 횟수도 결과에 영향을 줌
첫 번째 배열에서 해당 요소가 몇 번 반복되어 나오는지가 결과에 영향을 미칩니다. 예를 들어, 어떤 요소가 $array1에는 여러 번 등장하지만 다른 배열에는 한 번만 등장한다면, 그 요소는 결과 배열에서 제외됩니다. 위 예제에서 'c'는 $myarray2에 존재하지 않기 때문에 세 번 모두 결과에 포함된 것을 확인할 수 있습니다.