array_intersect, но для под-массивов одной переменной массива

У меня есть массив, который выглядит так:

$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

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

Обратите внимание, что ключи сохраняются с $ foo [0]