Получить пересечение многомерного массива в PHP [дубликат]Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Получить пересечение многомерного массива в PHP [дубликат]

Сообщение Anonymous »

Отправная точка
У меня есть многомерный массив, как показано в следующем примере:

Код: Выделить всё

$array = array (
'role_1' =>
array (
0 => 'value_2',
1 => '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 в цикле.
Спасибо, что уделили время.

Подробнее здесь: https://stackoverflow.com/questions/380 ... ray-in-php
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»