• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

详解php中的array_diff() 函数

php 搞代码 3年前 (2022-01-22) 15次浏览 已收录 0个评论

比较两个数组的键值,并返回差集:

<?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 等等)中的键值。

语法

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><?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('动', '美', '学', '院'); $b = array('a'=>'学','美');$c = array_diff($a,$b);var_export($c);     //结果为 动 院/*知识点二:array_diff_assoc — 带索引检查计算数组的差集函数原形:array array_diff_assoc ( array $array1 , array $array2 [, array $... ] )功能:计算差集,要求键值对完全相同的才进行减去。返回:返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的"键值对"*/$a = array('d' => '动', 'l' => '美', 'x' => '学', 'y' => '院'); $b = array('l' => '美','a' => '动' );$c = array_diff_assoc($a,$b);var_export($c); //结果:array ( 'd' => '动', 'x' => '学', 'y' => '院', )/*知识点三:array_diff_key — 使用键名比较计算数组的差集函数原形:array array_diff_key ( array $array1<a>本2文来*源gao($daima.com搞@代@#码(网</a><strong>搞gaodaima代码</strong> , array $array2 [, array $... ] )根据 array1 中的键名和 array2 进行比较,返回不同键名的项。 本函数和 array_diff() 相同只除了比较是根据键名而不是值来进行的。*/$a = array('d' => '动', 'l' => '美', 'x' => '学', 'y' => '院'); $b = array('d' => '学','l' => '美');$c = array_diff_key($a,$b);var_export($c);     //结果:array ( 'x' => '学', 'y' => '院', )/*目前关于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() 函数的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:详解php中的array_diff() 函数

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址