> 백엔드 개발 > PHP 튜토리얼 > 여러 배열의 차이 집합을 얻는 세 가지 방법 알아보기(수집)

여러 배열의 차이 집합을 얻는 세 가지 방법 알아보기(수집)

WBOY
풀어 주다: 2023-04-10 19:30:02
원래의
3694명이 탐색했습니다.

이전 기사 "5분 안에 여러 배열의 교차점을 구하는 세 가지 방법 알아보기(컬렉션)"에서 PHP 배열 연산에서 여러 배열의 교차점을 구하는 방법을 자세히 소개했습니다. 배열 작업에서 여러 배열의 차이 집합을 얻는 방법을 살펴보세요. 모두에게 도움이 되기를 바랍니다!

여러 배열의 차이 집합을 얻는 세 가지 방법 알아보기(수집)

이전 기사에서 우리는 여러 배열 사이의 교차점을 얻으려면 array_intersect 함수, array_intersect_key 함수 및 array_intersect_assoc 함수는 다양한 방법을 사용하여 배열 간의 교차점을 얻습니다. PHP에는 배열 간의 교집합을 구하는 방법이 있으므로, PHP 배열 간의 차이를 구하는 방법도 있습니다. array_intersect函数、array_intersect_key函数和array_intersect_assoc函数分别以不同的方法来获取数组之间的交集。既然在PHP中有能够获取数组间交集的方法那同时也会有获取PHP数组间差集的方法。

获取数组间差集的方法有很多,与获取交集类似,我们也可以通过比较键值、比较键名和比较键值与键名的方法来比较数组,然后获取数组间的差集。下面我们就分别来看一下这三种方法的使用吧。

比较键值-<span style="font-size: 20px;">array_diff</span>函数

在PHP中内置了array_diff函数用来通过比较键值的方式来比较数组,然后返回数组间的差集。array_diff函数的基本语法格式如下:

array_diff(array1,array2,array3...);
로그인 후 복사

其中需要注意的是,参数array123表示的是用来比较的数组,返回的结果差集数组,该数组中的元素包括在了第一个数组元素中。返回数组是第一个数组中其他数组没有的值,在返回的数组中键名保持不变。

下面我们通过示例来看一下array_diff函数的使用,示例如下:

<?php
$fruit1 = array("Apple","Banana","Orange");
$fruit2 = array("Pear","Apple","Grape");
$fruit3 = array("Watermelon","Orange","Apple");
$intersection = array_diff($fruit1, $fruit2, $fruit3);
print_r($intersection);
?>
로그인 후 복사

输出结果:

여러 배열의 차이 집합을 얻는 세 가지 방법 알아보기(수집)

通过上述示例我们通过array_diff函数,返回的结果正是数组1与其他数组的差集。也就是返回的结果正是数组1中有但是其他数组中没有的元素。当然了这是比较元素的键值,下面我们来看一下通过比较元素的键名,返回的结果有什么不同。

比较键名-array_diff_key函数

在PHP中可以通过array_intersect_key函数来比较数组间的键名然后返回数组间的交集,与之类似的就是array_diff_key函数能够比较键名然后返回数组间的差集。

array_diff_key函数的基本语法格式如下:

array_diff_key(array1,array2,array3...);
로그인 후 복사

其中需要注意的是:参数array123表示的需要比较的数组,返回的差集数组中的元素都是数组1中的元素,但是并不在其他的数组元素中。

接下来我们通过示例来看一下array_diff_key函数的应用,示例如下:

<?php
$fruit1 = array("a"=>"Apple","b"=>"Banana","c"=>"Orange");
$fruit2 = array("a"=>"Pear","d"=>"Apple","e"=>"Grape");
$fruit3 = array("a"=>"Watermelon","f"=>"Orange","g"=>"Apple");
$intersection = array_diff_key($fruit1, $fruit2, $fruit3);
print_r($intersection);
?>
로그인 후 복사

输出结果:

여러 배열의 차이 집합을 얻는 세 가지 방법 알아보기(수집)

通过上述示例我们就是通过array_diff_key函数来进行比较数组间的键名,然后返回差集,返回的结果正是数组1中有的键名但是其他的数组元素中没有的键名。这是通过比较键名,下面我们来看一下同时比较键值和键名应该怎样操作。

比较键值与键名-array_diff_assoc函数

在PHP中可以通过array_intersect_assoc函数比较键值与键名,然后返回的结果是数组元素中的交集,与之类似的就是array_diff_assoc函数它也是比较键值与键名,但是返回的结果是数组元素中的差集。

array_diff_assoc函数的基本语法格式如下:

array_diff_assoc(array1,array2,array3...);
로그인 후 복사

其中需要注意的是:参数array123表示的需要比较的数组,通过比较键值与键名,返回的差集数组中的元素都是数组1中的元素,但是并不在其他的数组元素中。

下面我们通过示例来看一下array_diff_assoc函数的应用,示例如下:

<?php
$fruit1 = array("a"=>"Apple","b"=>"Banana","c"=>"Orange");
$fruit2 = array("a"=>"Pear","d"=>"Apple","e"=>"Grape");
$fruit3 = array("a"=>"Watermelon","f"=>"Orange","g"=>"Apple");
$intersection = array_diff_assoc($fruit1, $fruit2, $fruit3);
print_r($intersection);
?>
로그인 후 복사

输出结果:

여러 배열의 차이 집합을 얻는 세 가지 방법 알아보기(수집)

通过上述示例我们通过array_diff_assoc

배열 간의 차이를 구하는 방법은 교집합을 구하는 것과 유사하게 키 값을 비교하고, 키 이름을 비교하고, 키 값과 키 이름을 비교하여 배열을 비교할 수도 있으며, 그런 다음 배열 간의 차이를 구할 수도 있습니다. . 이 세 가지 방법의 사용법을 개별적으로 살펴보겠습니다.

키 값 비교-<span style="font-size: 20px;">array_diff</span>함수

array_diff 함수는 PHP에 내장되어 있으며 키 값을 비교하여 배열을 비교합니다. 배열 간의 차이를 반환합니다. array_diff 함수의 기본 구문 형식은 다음과 같습니다. 🎜rrreee🎜매개변수 array123은 비교에 사용되는 배열을 나타내며, 반환된 결과 차이 배열, 이 배열의 요소는 다음과 같습니다. 첫 번째 배열 요소에 포함됩니다. 반환되는 배열은 다른 배열에 없는 첫 번째 배열의 값이며, 반환된 배열의 키 이름은 변경되지 않은 채로 유지됩니다.
🎜🎜예제를 통해 array_diff 함수의 사용법을 살펴보겠습니다.
🎜rrreee🎜출력 결과:
🎜🎜 여러 배열의 차이 집합을 얻는 세 가지 방법 알아보기(수집)🎜🎜위를 통해 예를 들어 array_diff Function을 전달하면 반환된 결과는 정확히 배열 1과 다른 배열 간의 차이입니다. 즉, 반환된 결과는 정확히 배열 1에는 있지만 다른 배열에는 없는 요소입니다. 물론, 이는 요소의 키 값을 비교하는 것인데, 요소의 키 이름을 비교하여 반환되는 결과의 차이를 살펴보겠습니다. 🎜🎜키 이름 비교-array_diff_key 함수🎜🎜PHP에서는 를 전달할 수 있습니다 array_intersect_key 함수는 배열 간의 키 이름을 비교하고 배열 간의 교집합을 반환합니다. 마찬가지로 array_diff_key 함수는 키 이름을 비교하고 배열 간의 차이를 반환합니다. 🎜🎜array_diff_key 함수의 기본 구문 형식은 다음과 같습니다. 🎜rrreee🎜매개변수 array123은 비교해야 하는 배열을 나타내며 반환된 차이 배열의 요소는 다음과 같습니다. 배열 1의 모든 요소(다른 배열 요소의 요소는 아님)
🎜🎜다음으로 예시를 통해 array_diff_key 함수의 적용을 살펴보겠습니다.
🎜rrreee🎜출력 결과:
🎜🎜여러 배열의 차이 집합을 얻는 세 가지 방법 알아보기(수집)🎜🎜통해 위의 예에서는 array_diff_key 함수를 전달합니다. 배열 간의 키 이름을 비교한 다음 차이 세트를 반환합니다. 반환된 결과는 정확히 배열 1의 키 이름이지만 다른 배열 요소에는 없습니다. 이는 키 이름 비교를 통해 이루어지며, 키 값과 키 이름을 동시에 비교하는 방법을 살펴보겠습니다. 🎜🎜키 값과 키 이름 비교-array_diff_assoc 함수🎜🎜는 PHP에서 array_intersect_assoc 함수는 키 값과 키 이름을 비교한 다음 배열 요소의 교집합을 반환합니다. array_diff_assoc 함수와 마찬가지로 키 값도 비교합니다. 및 키 이름이지만 반환된 결과는 배열 요소 간의 차이입니다. 🎜🎜array_diff_assoc 함수의 기본 구문 형식은 다음과 같습니다. 🎜rrreee🎜array123 매개변수는 키 값과 키 이름을 비교하여 비교해야 하는 배열을 나타냅니다. , 반환된 차이 배열 요소는 배열 1의 모든 요소이지만 다른 배열 요소에는 없습니다.
🎜🎜예제를 통해 array_diff_assoc 함수의 적용을 살펴보겠습니다. 🎜rrreee🎜출력 결과:
🎜🎜여러 배열의 차이 집합을 얻는 세 가지 방법 알아보기(수집)🎜🎜위의 예를 통해 array_diff_assoc 이 함수는 배열 간의 키 값과 키 이름을 비교한 다음 차이점 세트를 반환합니다. 반환된 결과는 정확히 배열 1의 요소이지만 다른 배열에는 없습니다. 🎜🎜관심이 있으시면 "🎜PHP 비디오 튜토리얼🎜"을 클릭하여 PHP 지식에 대해 자세히 알아볼 수 있습니다. 🎜

위 내용은 여러 배열의 차이 집합을 얻는 세 가지 방법 알아보기(수집)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:PHP,数组
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿