array_diff(array $array1, array $array2, array $_ = null)
作用:计算并返回两个或多个数组之间的差集数组,包含所有在第一个数组中存在,但不在任何其他指定数组中的键值对。
结果:返回的是那些仅存在于第一个数组,且在所有后续数组中找不到的元素组成的数组。
示例1:array_diff( [1,2,3],[2,3,4],[2],[4] ) 返回的是 [1],原因是元素1存在第一个数组中,但不存在后面的数组中。
示例2:array_diff( [1,2,3],[2,3,4],[4,1] ) 返回的是 [ ],原因是第一个数组中的所有元素,在后面的数组中存在,所以返回空数组。
array_intersect(array $array1, array $array2, array $_ = null)
作用:计算并返回两个或多个数组之间的交集数组,包含所有在所有指定数组中都存在的键值对。
结果:返回的是那些同时出现在所有比较数组中的相同元素组成的数组。
示例1:array_intersect( [1,2,3],[2,3,4] ) 返回的是 [ 1 => 2, 2 => 3 ],原因是元素2和3都存在所有需要比较的数组中。
示例2:array_intersect( [1,2,3],[2,5,4],[4,6,2] ) 返回的是 [ 1=>2 ],原因是元素2都存在所有需要比较的数组中。
总结: array_diff() 是比较数组的差集,而array_intersect() 则是比较数组的交集,这两个函数的作用是相反的。