For such behaviour with variable amount of arrays, you can use call_user_func_array
:
$array_list = array($array[1],$array[2],$array[3]);
$intersect = call_user_func_array('array_intersect',$aarray_list);
Test
$array_list = array(array(1,2,3), array(2,3,4,5), array(3,7,"a"));
$result = call_user_func_array('array_intersect',$array_list);
print_r($result);
Returns
Array ( [2] => 3 )