У меня есть многомерный массив, как показано в следующем примере:
Код: Выделить всё
$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' )Попробуйте
Я пробовал с источник, но думаю можно гораздо проще.
Код: Выделить всё
$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++;
};
Спасибо, что уделили время.
Подробнее здесь: https://stackoverflow.com/questions/380 ... ray-in-php
Мобильная версия