Получить пересечение нескольких массивов в PHP

Отправная точка

У меня есть несколько массивов, как в следующем примере.

$array = array (
  'role_1' => 
  array (
    0 => 'value_2',
    0 => 'value_3',
  ),
  'role_2' => 
  array (
    0 => 'value_1',
    1 => 'value_2',
  ),
  'role_3' => 
  array (
    0 => 'value_2',
    1 => 'value_3',
  ),
)
Цель

Мне нравится зацикливаться на подмассивах, чтобы получить только пересечение. Массив был создан динамически, может иметь много подмассивовrole_[x] а также много ключа / значения внутри под-массивов. Ключ не нужен, только значение. Ключ также является счетчиком, а не строкой.

В результате я хотел бы получить в этом примере этот небольшой массив.

$array = array( 'value_2' )

Индексы, "имя-массива", какrole_1 из подмассивов не более актуальны после пересечения. Для меня важно, чтобы в результате были значения, в каждом подмассиве существуют только те значения, которые там есть.

Пытаться

Я пытался с источником, но я думаю, что это возможно гораздо проще.

$value_stack = array();
$result = array();
$i = 0;
foreach( $settings_ as $role => $values ) {

    foreach( $values as $value ){

        if( in_array( $value,$value_stack ) || $i === 0 ) {
            $result[ $role ][] = $value;
        }

        $value_stack[] = $value;
    }
    $i++;

};

Слияние этого результата с несколькими массивами должно выполняться сarray_merge в петле.

Спасибо за ваше время.

Ответы на вопрос(3)

Ваш ответ на вопрос