현재 위치: > 최신 기사 목록> 배열에서 고유 요소를 찾기 위해 PHP의 Array_Diff () 함수를 사용하는 방법은 무엇입니까?

배열에서 고유 요소를 찾기 위해 PHP의 Array_Diff () 함수를 사용하는 방법은 무엇입니까?

M66 2025-06-24

개발 과정에서, 우리는 종종 두 개 이상의 배열을 비교 해야하는 상황, 특히 특정 배열을 찾는 상황을 발견합니다. PHP는 매우 실용적인 내장 기능 인 Array_Diff () 를 제공 하며이 작업을 쉽게 수행 할 수 있습니다.

1. Array_diff () 란 무엇입니까?

Array_Diff () 는 배열 차이를 비교하는 PHP의 함수입니다. 첫 번째 배열에만 나타나는 요소가 포함 된 배열을 반환하며 후속 배열에 존재하는 값을 반환하지 않습니다.

기능 프로토 타입 :

 array array_diff(array $array1, array ...$arrays)
  • $ array1은 비교하려는 기본 배열입니다.

  • $ 배열은 기본 배열과 비교하려는 하나 이상의 배열입니다.

2. 예제를 사용하십시오

예 1 : 사용자의 새로운 취미를 찾으십시오

사용자의 원래 관심사와 사용자가 제출 한 새로운 관심사를 기록하고 어떤 것이 새로운 지 알고 싶어한다고 가정 해 봅시다.

 <?php
$originalInterests = ['음악', '영화', '여행'];
$newInterests = ['음악', '영화', '여행', '사진술', '읽다'];

$addedInterests = array_diff($newInterests, $originalInterests);

print_r($addedInterests);
?>

산출:

 Array
(
    [3] => 사진술
    [4] => 읽다
)

보시다시피, Array_diff ()는 $ NewInterests 에만 나타나는 요소를 반환합니다. 이는 사용자의 새로운 관심사입니다.

3. URL 예제 결합

사용자가 제출 한 웹 사이트 목록을 처리 할 때 사용자가 제출 한 URL을 필터링하고 새로운 URL 만 남기고 싶다고 가정 해 봅시다.

 <?php
$existingUrls = [
    'https://m66.net/article/123',
    'https://m66.net/blog/2024',
];

$submittedUrls = [
    'https://m66.net/article/123',
    'https://m66.net/tools/checker',
    'https://m66.net/blog/2024',
    'https://m66.net/contact',
];

$newUrls = array_diff($submittedUrls, $existingUrls);

print_r($newUrls);
?>

산출:

 Array
(
    [1] => https://m66.net/tools/checker
    [3] => https://m66.net/contact
)

결과는 사용자가 제출 한 두 URL이 새롭고 원래 목록에 표시되지 않았 음을 보여줍니다.

4. 주목할만한 것들

  • Array_diff ()값으로 비교되며 '1' 과 같은 비 스트릭 모드 (데이터 유형을 비교하지 않음) 및 1은 동일하게 간주됩니다.

  • 엄격한 비교 (즉, 데이터 유형을 비교해야 함)를 사용해야하는 경우 array_diff_assoc () 또는 array_diff_key ()를 사용할 수 있습니다.

  • 리턴 결과는 원래 배열의 키 이름을 유지합니다. 키 이름이 필요하지 않은 경우 array_values ​​() 로 다시 표시 할 수 있습니다.

 $cleanList = array_values(array_diff($newUrls, $existingUrls));

5. 요약

Array_Diff ()는 데이터 필터링, 로그 비교, 사용자 행동 분석 및 기타 시나리오에 적합한 매우 강력한 도구입니다. 작동 방식을 이해하는 한 많은 배열 처리 로직이 간단하고 효율적 일 수 있습니다.

이 기사가 당신이 array_diff ()를 더 잘 이해하고 사용하는 데 도움이되기를 바랍니다! 개발에 비슷한 문제가 발생하면이 기능을 시도하여 많은 코드를 절약 할 수 있습니다.