>  기사  >  백엔드 개발  >  PHP의 array_diff() 함수에 대한 자세한 설명

PHP의 array_diff() 함수에 대한 자세한 설명

PHP中文网
PHP中文网원래의
2017-10-27 09:38:412013검색

두 배열의 키 값을 비교하고 차이를 반환합니다.

<?php
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"green","g"=>"blue");
$result=array_diff($a1,$a2);
print_r($result);
?>

array_diff() 함수는 두 개(또는 그 이상) 배열의 키 값을 비교하고 차이를 반환하는 데 사용됩니다.

이 함수는 두 개 이상의 배열의 키 값을 비교하고 비교된 배열(array1)의 모든 키를 포함하지만 다른 매개변수 배열(array2 또는 array3 등)에는 포함되지 않은 차이 배열을 반환합니다. .

Syntax

array_diff(array1,array2,array3...);

매개변수                         설명

array1 필수입니다. 다른 배열과 비교할 첫 번째 배열입니다.

array2 필수입니다. 첫 번째 배열과 비교할 배열입니다.

array3,... 선택 사항입니다. 첫 번째 배열과 비교할 추가 배열입니다.

비교 배열(array1)에는 있지만 다른 매개변수 배열(array2 또는 array3 등)에는 없는 모든 키 값을 포함하는 차이 배열을 반환합니다.

세 배열의 키 값을 비교하고 차이를 반환합니다.

<?php
    $a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
    $a2=array("e"=>"red","f"=>"black","g"=>"purple");
    $a3=array("a"=>"red","b"=>"black","h"=>"yellow");
    $result=array_diff($a1,$a2,$a3);
    print_r($result);
?>
<pre class="brush:php;toolbar:false">
<?phpheader("Content-Type:text/html;charset=utf-8");/*知识点一:array_diff — 计算数组的差集
原形:array array_diff ( array $array1 , array $array2 [, array $... ] )
功能:对比返回在 array1 中但是不在 array2 及后面参数数组中的值。
返回:返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。
注意:返回的数组键名保留不变。
应用背景案例分析:
假设我们做一个邮件群发系统,邮件都在数组 $a中保留。
如果有本次我们不想发送给其中特定的几个邮箱,没必要从$a中删除,因为下次还有添加比较麻烦。
处理方法:在做一个数组$b,让系统自动差集计算,不对在$b中包含的几个用户发邮件,其他都发送。 */ //例:/*$a = range(1,9);        //创建一个包含 1,2,3,4,5,6,7,8,9 的数组
$b = array(5,6,1);        //计划排除其中的 1,5,6
$c = array_diff($a,$b); //结果为  2,3,4,7,8,9*/ //例:$a = array(&#39;动&#39;, &#39;美&#39;, &#39;学&#39;, &#39;院&#39;); 
$b = array(&#39;a&#39;=>&#39;学&#39;,&#39;美&#39;);$c = array_diff($a,$b);var_export($c);     //结果为 动 院/*知识点二:array_diff_assoc — 带索引检查计算数组的差集
函数原形:array array_diff_assoc ( array $array1 , array $array2 [, array $... ] )
功能:计算差集,要求键值对完全相同的才进行减去。
返回:返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的"键值对"*/$a = array(&#39;d&#39; => &#39;动&#39;, &#39;l&#39; => &#39;美&#39;, &#39;x&#39; => &#39;学&#39;, &#39;y&#39; => &#39;院&#39;); 
$b = array(&#39;l&#39; => &#39;美&#39;,&#39;a&#39; => &#39;动&#39; );$c = array_diff_assoc($a,$b);var_export($c); 
//结果:array ( &#39;d&#39; => &#39;动&#39;, &#39;x&#39; => &#39;学&#39;, &#39;y&#39; => &#39;院&#39;, )/*知识点三:array_diff_key — 使用键名比较计算数组的差集
函数原形:array array_diff_key ( array $array1 , array $array2 [, array $... ] )
根据 array1 中的键名和 array2 进行比较,返回不同键名的项。 
本函数和 array_diff() 相同只除了比较是根据键名而不是值来进行的。*/$a = array(&#39;d&#39; => &#39;动&#39;, &#39;l&#39; => &#39;美&#39;, &#39;x&#39; => &#39;学&#39;, &#39;y&#39; => &#39;院&#39;); 
$b = array(&#39;d&#39; => &#39;学&#39;,&#39;l&#39; => &#39;美&#39;);$c = array_diff_key($a,$b);var_export($c);     //结果:array ( &#39;x&#39; => &#39;学&#39;, &#39;y&#39; => &#39;院&#39;, )/*目前关于array_diff的函数及变种一共有八个分别如下,比较实用的有三个
array_diff_assoc — 带索引检查计算数组的差集
array_diff_key — 使用键名比较计算数组的差集
array_diff_uassoc — 用用户提供的回调函数做索引检查来计算数组的差集
array_diff_ukey — 用回调函数对键名比较计算数组的差集
array_diff — 计算数组的差集
array_udiff_assoc — 带索引检查计算数组的差集,用回调函数比较数据
array_udiff_uassoc — 带索引检查计算数组的差集,用回调函数比较数据和索引
array_udiff — 用回调函数比较数据来计算数组的差集*/?>


위 내용은 PHP의 array_diff() 함수에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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