이전 기사 "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
함수의 사용법을 살펴보겠습니다.array_diff
Function을 전달하면 반환된 결과는 정확히 배열 1과 다른 배열 간의 차이입니다. 즉, 반환된 결과는 정확히 배열 1에는 있지만 다른 배열에는 없는 요소입니다. 물론, 이는 요소의 키 값을 비교하는 것인데, 요소의 키 이름을 비교하여 반환되는 결과의 차이를 살펴보겠습니다. 🎜🎜키 이름 비교-array_diff_key
함수🎜🎜PHP에서는 를 전달할 수 있습니다 array_intersect_key
함수는 배열 간의 키 이름을 비교하고 배열 간의 교집합을 반환합니다. 마찬가지로 array_diff_key
함수는 키 이름을 비교하고 배열 간의 차이를 반환합니다. 🎜🎜array_diff_key
함수의 기본 구문 형식은 다음과 같습니다. 🎜rrreee🎜매개변수 array123은 비교해야 하는 배열을 나타내며 반환된 차이 배열의 요소는 다음과 같습니다. 배열 1의 모든 요소(다른 배열 요소의 요소는 아님) array_diff_key
함수의 적용을 살펴보겠습니다.array_diff_key
함수를 전달합니다. 배열 간의 키 이름을 비교한 다음 차이 세트를 반환합니다. 반환된 결과는 정확히 배열 1의 키 이름이지만 다른 배열 요소에는 없습니다. 이는 키 이름 비교를 통해 이루어지며, 키 값과 키 이름을 동시에 비교하는 방법을 살펴보겠습니다. 🎜🎜키 값과 키 이름 비교-array_diff_assoc
함수🎜🎜는 PHP에서 array_intersect_assoc 함수는 키 값과 키 이름을 비교한 다음 배열 요소의 교집합을 반환합니다. array_diff_assoc
함수와 마찬가지로 키 값도 비교합니다. 및 키 이름이지만 반환된 결과는 배열 요소 간의 차이입니다. 🎜🎜array_diff_assoc
함수의 기본 구문 형식은 다음과 같습니다. 🎜rrreee🎜array123 매개변수는 키 값과 키 이름을 비교하여 비교해야 하는 배열을 나타냅니다. , 반환된 차이 배열 요소는 배열 1의 모든 요소이지만 다른 배열 요소에는 없습니다. array_diff_assoc
함수의 적용을 살펴보겠습니다. 🎜rrreee🎜출력 결과:위 내용은 여러 배열의 차이 집합을 얻는 세 가지 방법 알아보기(수집)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!