현재 위치: > 최신 기사 목록> Array_Diff () 및 Array_Intersect ()의 차이와 조합

Array_Diff () 및 Array_Intersect ()의 차이와 조합

M66 2025-05-14

PHP에서 Array_Diff ()Array_Intersect () 는 배열 비교 및 ​​차이 계산에 중요한 역할을하는 매우 일반적인 배열 작동 기능입니다. 이 두 기능의 기능은 다르지만 때로는 코드의 효율성을 향상시키기 위해 조합으로 사용될 수 있습니다. 이 기사는 그들의 차이점을 자세히 설명하고 그것들을 조합하여 사용할 수있는 방법을 제공합니다.

1. array_diff () 함수

Array_Diff ()는 첫 번째 배열에 존재하지만 다른 배열에 있지 않은 요소가 포함 된 배열을 반환하는 데 사용됩니다. 간단히 말해서 Array_diff ()는 배열의 "차이 세트"를 계산합니다.

문법:

 array_diff(array $array1, array $array2, array ...$arrays): array

예:

 $array1 = [1, 2, 3, 4];
$array2 = [3, 4, 5, 6];
$result = array_diff($array1, $array2);
print_r($result);

산출:

 Array
(
    [0] => 1
    [1] => 2
)

위의 예에서, Array_diff ()는 array1 에서 요소를 반환하지만 Array2 , 즉 1 및 2에서는 그렇지 않습니다.

2. array_intersect () 함수

Array_Intersect ()는 둘 이상의 배열로 존재하는 모든 요소를 ​​포함하는 배열을 반환하는 데 사용됩니다. 배열의 "교차"를 계산합니다.

문법:

 array_intersect(array $array1, array $array2, array ...$arrays): array

예:

 $array1 = [1, 2, 3, 4];
$array2 = [3, 4, 5, 6];
$result = array_intersect($array1, $array2);
print_r($result);

산출:

 Array
(
    [2] => 3
    [3] => 4
)

위의 예에서, array_intersect ()는 array1array2 , 즉 3 및 4에 존재하는 요소를 반환합니다.

3. Array_diff ()array_intersect () 의 차이

이 두 기능의 차이점을 요약하겠습니다.

  • Array_Diff () : 첫 번째 배열에는 있지만 다른 배열에는 그렇지 않은 요소가 포함 된 배열을 반환합니다. 다시 말해, "차이 세트"를 계산합니다.

  • Array_Intersect () : 둘 이상의 배열로 존재하는 모든 요소가 포함 된 배열을 반환합니다. "교차"를 계산합니다.

결과에서 Array_Diff () 가 반환 한 요소는 다른 배열을 제외하고 Array_Intersect () 는 공통 요소를 반환합니다.

4. 효율성을 향상시키기 위해 Array_Diff ()Array_Intersect ()를 사용하는 방법은 무엇입니까?

때로는 복잡한 배열을 처리 할 때 동시에 차이와 교차로를 얻어야합니다. 현재 Array_Diff ()Array_Intersect ()를 사용하여 효율성을 향상시키는 것을 고려하십시오. 예를 들어, 원치 않는 요소를 제외하고 교차로에서 공통 요소를 찾아야하는 경우이 두 기능을 결합하여 한 단계로 수행 할 수 있습니다.

예:

두 개의 배열이 있다고 가정합니다. 하나는 사용자 A의이자 목록이고 다른 하나는 사용자 B의 관심 목록입니다. A는 A와 B가 가지고 있지 않은 관심사 (차이 세트)를 찾아서 A와 B가 공유하는 관심사 (교차 세트)를 찾아야합니다.

 $userA = ['music', 'sports', 'travel', 'reading'];
$userB = ['sports', 'travel', 'photography'];

// 얻다A가지다B관심이 없습니다
$diff = array_diff($userA, $userB);
print_r($diff); // 산출: Array ( [0] => music [3] => reading )

// 얻다A그리고B공통 관심사
$intersect = array_intersect($userA, $userB);
print_r($intersect); // 산출: Array ( [1] => sports [2] => travel )

이 접근법은 효과적으로 두 배열의 다른 부분을 동일한 부품과 분리하고 비교하여 복잡성을 줄이는 데 도움이됩니다.

5. URL 처리의 응용 프로그램

때로는 URL 목록을 처리하고 해당 판단을해야합니다. Array_Diff ()Array_Intersect ()는 이러한 유형의 응용 프로그램 시나리오에서도 사용할 수 있습니다. 예를 들어, 일부 URL이 지정된 도메인 이름 아래에 있지 않거나 두 도메인 이름 목록에서 교차로를 찾으십시오.

 $urlsA = ['http://example.com', 'http://m66.net/page1', 'http://m66.net/page2'];
$urlsB = ['http://m66.net/page1', 'http://m66.net/page2', 'http://example.com/page3'];

// 얻다在A안에서B사내URL
$diffUrls = array_diff($urlsA, $urlsB);
print_r($diffUrls); // 산출: Array ( [0] => http://example.com )

// 얻다A그리고B흔한URL
$intersectUrls = array_intersect($urlsA, $urlsB);
print_r($intersectUrls); // 산출: Array ( [1] => http://m66.net/page1 [2] => http://m66.net/page2 )

6. 요약

  • Array_Diff ()Array_Intersect () 는 배열을 처리 할 때 매우 유용한 기능이며 각각 차이와 교차점을 계산하는 데 사용됩니다.

  • 이 두 기능을 조합하여 사용하면 배열 데이터를보다 효율적으로 처리 할 수 ​​있습니다. 특히 다른 부품과 동일한 부품을 동시에 얻을 필요가있을 때.

  • 실제 개발에서 특히 URL, 사용자 데이터 등을 처리 할 때이 두 기능을 합리적으로 사용하면 코드의 가독성과 실행 효율이 향상 될 수 있습니다.