2010-08-07 1 views
0

У меня есть многомерный массив php (2 уровня) с некоторыми значениями, и я хочу определить, какие значения присутствуют во всех массивах.php массивы, обнаруживающие элементы, присутствующие во всех подмассивах

Array 
(
    [1] => Array 
     (
      [0] => 1 
      [1] => 3 
     ) 

    [2] => Array 
     (
      [0] => 1 
      [1] => 2 
     ) 

    [3] => Array 
     (
      [0] => 1 
      [1] => 3 
     ) 

) 

.... в нашем случае значение 1 присутствует во всех массивах второго уровня. Есть ли способ определить это?

ответ

2

Вы можете использовать array_intersect сделать пересечение всех массивов:

$intersection = $arr[0]; 
for ($i=1, $n=count($arr); $i<$n; ++$i) { 
    $intersection = array_intersect($intersection, $arr[$i]); 
    if (empty($intersection)) break; 
} 

Или немного короче, используя call_user_func_array:

$intersection = call_user_func_array('array_intersect', $arr); 
Смежные вопросы