妙用PHP函数array_diff
众多周知,在php中有这样一个函数array_diff(),该函数的原始用途——也就是基本定义的用途是用来找两个数组的差集的,返回的结果是一个数组。例如:
有两个数组
1 2 3 4 5 6 | $a=array(1,2,3); $b=array(1,2,4); $c=array_diff($a,$b); var_dump($c); |
结果如下:
1 2 3 4 | array(1) { [2]=> int(3) } |
可以看到他返回的数组元素包含了键值在数组a中不在数组b中的值3,
注意:比较差集是分先后顺序的,如果你这样写array($b,$a),其结果是:
1 2 3 4 | array(1) { [2]=> int(4) } |
更加需要注意的是这个函数返回的数组键名并不改变,就像上边显示的那样,3在数组a的第2位,4在数组b的第二位都没有改变,你可不能想当然的从索引0来访问返回的数组c
既然说到是妙用就不能只说基本用途,不然就成了标题党了,呵呵……
我们可以利用这个函数来去掉某个数组中我们不想要的元素。
例如我们在数组a中,想把1,2两个值去掉的话,该怎么办呢?有一个传统方法就是遍历数组,如果值等于1,或者等2我们就移除这个元素,显然比较麻烦,如今就不同了,我们可以这样来写
首先,把我们不需要的数值组成一个数组,
1 | $del=array(1,2); |
接下来我们就利用我们的主角array_diff函数了
1 2 | $d=array_diff($a,$del); var_dump($d); |
php的执行结果就会是我们梦寐以求的这样哦:
1 2 3 4 | array(1) { [2]=> int(3) } |
呵呵……怎么样,只要动脑筋废铁变成金吧!!!

果然是不错的想法哦~