>  기사  >  백엔드 개발  >  PHP에서 두 배열의 차이점 찾기

PHP에서 두 배열의 차이점 찾기

WBOY
WBOY원래의
2023-05-11 10:00:072115검색

PHP 프로그래밍에서는 교집합, 합집합, 보완 등 배열에 대한 연산을 수행해야 하는 경우가 많습니다. 일반적으로 사용되는 작업 중 하나는 두 배열 간의 차이점을 찾는 것입니다. 즉, 한 배열에 있는 요소를 다른 배열에서 삭제하여 차이를 얻는 것입니다. 이 기사에서는 두 배열의 차이점을 찾는 두 가지 방법을 소개합니다.

방법 1: array_diff() 함수 사용

array_diff() 함수는 PHP에 내장된 함수로, 둘 이상의 배열 간의 차이를 비교하고 차이 배열을 반환하는 데 사용할 수 있습니다. 이 함수의 형태는 다음과 같습니다.

array array_diff ( array $array1 , array $array2 [, array $... ] )

그 중 $array1 과 $array2 는 비교할 두 개의 배열이고, $... 는 비교를 위해 여러 배열 매개변수 세트를 전달할 수 있음을 나타냅니다. 이 함수는 $array1에 있지만 다른 인수 배열에는 없는 모든 요소로 구성된 연관 배열을 반환합니다.

예제를 살펴보겠습니다.

$array1 = array("a", "b", "c", "d", "e");
$array2 = array("b", "d", "f");
$result = array_diff($array1, $array2);
print_r($result);

위 코드의 출력 결과는 다음과 같습니다.

Array
(
    [0] => a
    [2] => c
    [4] => e
)

보시다시피 함수는 두 배열의 차이를 [a, c, e]로 성공적으로 반환합니다.

방법 2: foreach 루프 사용

기본 제공 함수를 사용하는 것 외에도 foreach 루프를 사용하여 두 배열 간의 차이점을 찾을 수도 있습니다. 이 방법의 구현은 찾을 차이 집합의 배열 1을 순회하고 배열 2에 대해 순환 비교를 수행하는 것입니다. 배열 1의 요소가 배열 2에 존재하는 경우 배열 2의 요소를 삭제하고, 그렇지 않으면 저장됩니다. .

아래 사례를 살펴보겠습니다.

$array1 = array("a", "b", "c", "d", "e");
$array2 = array("b", "d", "f");
$result = array();
foreach ($array1 as $value) {
    $exist = false;
    foreach ($array2 as $key => $val) {
        if ($val == $value) {
            unset($array2[$key]);
            $exist = true;
            break;
        }
    }
    if (!$exist) {
        $result[] = $value;
    }
}
print_r($result);

위 코드의 출력 결과는 방법 1과 동일합니다.

Array
(
    [0] => a
    [2] => c
    [4] => e
)

보시다시피 이 방법은 이중 루프를 통해 차이 집합을 찾는 기능을 구현합니다. 첫 번째 수준 루프에서는 배열 1의 각 요소가 순회되고 두 번째 수준 루프에서는 배열 2의 각 요소가 순회되며 unset 함수를 통해 동일한 요소가 삭제되고 플래그 비트 $exist가 사용됩니다. 동일한 요소가 존재하는지 기록합니다. 마지막으로 배열 2에 없는 요소는 결과 배열에 저장됩니다.

요약

PHP 프로그래밍에서 두 배열의 차이점을 찾는 것은 일반적인 작업입니다. 이 기사에서는 차이 집합을 찾는 두 가지 방법을 소개합니다. 하나는 내장 함수 array_diff()를 사용하는 것이고, 다른 하나는 이중 루프를 통해 구현하는 것입니다. 어떤 방법을 사용하든 차이 집합의 배열을 쉽게 얻을 수 있습니다.

위 내용은 PHP에서 두 배열의 차이점 찾기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.