개발 과정에서, 우리는 종종 두 개 이상의 배열을 비교 해야하는 상황, 특히 특정 배열을 찾는 상황을 발견합니다. PHP는 매우 실용적인 내장 기능 인 Array_Diff () 를 제공 하며이 작업을 쉽게 수행 할 수 있습니다.
Array_Diff () 는 배열 차이를 비교하는 PHP의 함수입니다. 첫 번째 배열에만 나타나는 요소가 포함 된 배열을 반환하며 후속 배열에 존재하는 값을 반환하지 않습니다.
array array_diff(array $array1, array ...$arrays)
$ array1은 비교하려는 기본 배열입니다.
$ 배열은 기본 배열과 비교하려는 하나 이상의 배열입니다.
사용자의 원래 관심사와 사용자가 제출 한 새로운 관심사를 기록하고 어떤 것이 새로운 지 알고 싶어한다고 가정 해 봅시다.
<?php
$originalInterests = ['음악', '영화', '여행'];
$newInterests = ['음악', '영화', '여행', '사진술', '읽다'];
$addedInterests = array_diff($newInterests, $originalInterests);
print_r($addedInterests);
?>
산출:
Array
(
[3] => 사진술
[4] => 읽다
)
보시다시피, Array_diff ()는 $ NewInterests 에만 나타나는 요소를 반환합니다. 이는 사용자의 새로운 관심사입니다.
사용자가 제출 한 웹 사이트 목록을 처리 할 때 사용자가 제출 한 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이 새롭고 원래 목록에 표시되지 않았 음을 보여줍니다.
Array_diff () 는 값으로 비교되며 '1' 과 같은 비 스트릭 모드 (데이터 유형을 비교하지 않음) 및 1은 동일하게 간주됩니다.
엄격한 비교 (즉, 데이터 유형을 비교해야 함)를 사용해야하는 경우 array_diff_assoc () 또는 array_diff_key ()를 사용할 수 있습니다.
리턴 결과는 원래 배열의 키 이름을 유지합니다. 키 이름이 필요하지 않은 경우 array_values () 로 다시 표시 할 수 있습니다.
$cleanList = array_values(array_diff($newUrls, $existingUrls));
Array_Diff ()는 데이터 필터링, 로그 비교, 사용자 행동 분석 및 기타 시나리오에 적합한 매우 강력한 도구입니다. 작동 방식을 이해하는 한 많은 배열 처리 로직이 간단하고 효율적 일 수 있습니다.
이 기사가 당신이 array_diff ()를 더 잘 이해하고 사용하는 데 도움이되기를 바랍니다! 개발에 비슷한 문제가 발생하면이 기능을 시도하여 많은 코드를 절약 할 수 있습니다.