php 如何写一个取一维数组交集的公共方法

如题

取交集,array_intersect这个方法都知道
但是现在的难点是,我要写一个公共方法,不知道调用者传几个一维数组,我打算统一传个二维数组,循环去取,但是就会出现array_intersect(),括号里面该怎样循环进去的问题。或者还有其他思路也可以说一下。
所以想问一下,有什么办法支持调用者无论传几个都可以取交集。

阅读 4.2k
4 个回答

array_reduce

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

array_reduce — Iteratively reduce the array to a single value using a callback function

array_reduce($数组的数组,array_intersect)

图片描述
array_intersect() 函数用于比较两个(或更多个)数组的键值,并返回交集。

假设有A,B,C三个数组,A,B,C三个数组的交集即为A,B的交集与C的交集;
那你就循环取呗。

$args = func_get_args();
foreach ($args as $a) {}
里面的$a就是传给这个函数的参数

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题