PHP程序员站--PHP编程开发平台
 当前位置:主页 >> PHP高级编程 >> 开发技巧 >> 

用PHP函数array_diff来获得二个数组的差集

用PHP函数array_diff来获得二个数组的差集

来源:PHP程序员站  作者:PHP程序员站  发布时间:2011-07-07
众多周知,在php中有这样一个函数array_diff(),该函数的原始用途也就是基本定义的用途是用来找两个数组的差集的,返回的结果是一个数组。例如: 有两个数组 $a=array(1,2,3); $b=array(1,2,4); $c=array_diff($a,$b); var_dump($c); 结果如下: array(1) { [2]= int(3)

众多周知,在php中有这样一个函数array_diff(),该函数的原始用途——也就是基本定义的用途是用来找两个数组的差集的,返回的结果是一个数组。例如:

有两个数组

$a=array(1,2,3);
$b=array(1,2,4);

$c=array_diff($a,$b);

var_dump($c);

结果如下:

array(1) {
[2]=>
int(3)
}

可以看到他返回的数组元素包含了键值在数组a中不在数组b中的值3,
注意:比较差集是分先后顺序的,如果你这样写array($b,$a),其结果是:

array(1) {
[2]=>
int(4)
}

更加需要注意的是这个函数返回的数组键名并不改变,就像上边显示的那样,3在数组a的第2位,4在数组b的第二位都没有改变,你可不能想当然的从索引0来访问返回的数组c

既然说到是妙用就不能只说基本用途,不然就成了标题党了,呵呵……

我们可以利用这个函数来去掉某个数组中我们不想要的元素。

例如我们在数组a中,想把1,2两个值去掉的话,该怎么办呢?有一个传统方法就是遍历数组,如果值等于1,或者等2我们就移除这个元素,显然比较麻烦,如今就不同了,我们可以这样来写

首先,把我们不需要的数值组成一个数组,

$del=array(1,2);

接下来我们就利用我们的主角array_diff函数了

$d=array_diff($a,$del);
var_dump($d);

php的执行结果就会是我们梦寐以求的这样哦:

array(1) {
[2]=>
int(3)
}


延伸阅读:
PHP array_push 数组函数使用方法
php数组array操作函数大全
PHP array_flip() 交换数组中的键和值
php array数组删除重复元素的方法
array_map函数解析
Tags: php函数   array_diff   数组   差集  
最新文章
推荐阅读
月点击排行榜
PHP程序员站 Copyright © 2007-2010,PHPERZ.COM All Rights Reserved 粤ICP备07503606号