array_intersect,但是对于单个数组变量的子数组

时间:2012-02-24 21:07:38

标签: php arrays

我有一个看起来像这样的数组:

$foo = array(
    0 => array('a', 'b', 'c', 'd'),
    1 => array('b', 'c', 'd'),
    2 => array('b', 'd', 'f')
)

我会将$foo[0]$foo[1]$foo[2]称为子数组。

我基本上需要在array_intersect()中的所有3个子阵列中执行$foo。结果应该是:

array('b', 'd')

因为所有三个子阵列都有这些共同的值。这样做的最佳方式是什么?

一些注意事项:

  • 总会有至少一个子阵列。没有上限。
  • 如果只提供了一个子数组,则应该返回该子数组
  • 如果所有子数组中没有任何公共值,则应返回空数组
  • 如果此功能已作为PHP函数存在,我将/ facepalm

1 个答案:

答案 0 :(得分:27)

$intersect = call_user_func_array('array_intersect',$foo);

请注意,密钥是从$ foo [0]

中保留的