Debo decir que te hace falta más ingenio, iterar por si mismo no permitiría agrupar la información de la manera que buscas, hace falta crear un arreglo auxiliar y agrupar en relación al sub índice.
Código PHP:
Ver original$animales[0][0] = 'gato';
$animales[0][1] = 'caiman';
$animales[0][2] = 'paloma';
$animales[1][0] = 'felino';
$animales[1][1] = 'reptil';
$animales[1][2] = 'ave';
foreach ($animales as $index => $sub) {
foreach ($sub as $sub_index => $sub_value) {
isset($salida[$sub_index]) || $salida[$sub_index] = array(); $salida[$sub_index] []= $sub_value;
}
}