这个视频我们来看一下,怎么样找出数组的并集,交集,还有差集。
现在,这里有两个数组 ... a 和 b .... a 数组里面有两个项目 苹果 和 桔子, b 数组里面也有两个项目, 苹果和香蕉。 要找出这两个数组的并集,我们可以先把这两个数组全并到一块儿,然后再去掉重复的项目 ...
合并数组,可以使用 array_merge ... 在这个函数里面,指定一下要合并的两个数组 ... 数组 a 还有 数组 b
array_merge($a, $b)
保存 ... 现在得到的结果就是两个数组合并到一块的结果 ... 数组 a 里面的苹果,桔子,还有数组 b 里面的苹果香蕉...
合并之后,有两个重复的项目,就是 苹果 ... 我们可以再去使用 array_unique 函数去处理一下这个结果 ... 它可以去掉重复的项目 ...
array_unique(array_merge($a, $b))
这次得到的结果就是,苹果,桔子,还有香蕉 ... 也就是 ab 两个数组的并集。
交集
现在,我们要去得到这两个数组的交集,也就是两个数组共有的项目 ... 要用到的是 array_intersect 函数 ... 在这个函数里,指定一下要求交集的数组 ..
array_intersect($a, $b);
保存 ... 得到的结果里面,只会包含 苹果 这个项目 .. 因为它是这两个数组共用的一个项目 ...
差集
要找出两个数组里面不一样的项目,可以使用 array_diff ... 同样在这个函数里面指定两个数组 ... 注意这个顺序是很关键的 ... 如果你要找出数组 a 里面有的项目,在数组 b 里面没有的 ... 要把数组 a 放到前面,然后是数组 b 。
有点像是用数组 a 减去数组 b 。
array_diff($a, $b)
这里得到的结果就是 桔子 ... 因为数组 b 里面不包含 桔子 这个项目 ..
下面,我们把这两个数组的顺序倒过来 ...
array_diff($b, $a)
保存 ... 结果是 香蕉 .. 用数组 b 里的项目,减去数组 a 里的项目 ... 会剩下这个 香蕉 ... 因为在 a 里面,不包含这个项目 ....
如果我们把 a 里有的 b 里没有的,跟 b 里有的,a 里没有的合并到一块儿 ... 结果就是一个对称的差集 ...
array_merge(array_diff($a, $b), array_diff($b, $a))
得到的结果就是桔子,还有香蕉 ... 去掉了 a 和 b 这两个数组里面一样的项目 ... 也就是 苹果 这个项目 ...