Array
(
)

Loop em array multidimensional

Degui
   - 16 out 2015

Tenho um array multidimensional, que é resultado de uma busca no banco de dados
Preciso ordenar de uma forma estruturada...

Turma: 1º V02
Aluno: Mikael
Disciplina ---------- Trim1--------Trim2-------Trim3
Matemática --------- 1 ------------ 3 ------------- 5
Química ------------- 1 ------------ 9 ------------- 7
Filosofia ------------- 1 ------------ 5 ------------- 6
Aluno: Vinícius
Disciplina ---------- Trim1--------Trim2-------Trim3
Matemática --------- 1 ------------ 3 ------------- 5
Química ------------- 1 ------------ 9 ------------- 7
Filosofia ------------- 1 ------------ 5 ------------- 6
*****
Turma: 2º V01
Aluno: Marcos
Disciplina ---------- Trim1--------Trim2-------Trim3
Matemática --------- 1 ------------ 3 ------------- 5
Química ------------- 1 ------------ 9 ------------- 7
Filosofia ------------- 1 ------------ 5 ------------- 6

A estrutura do array é essa abaixo
Note que só uso no exemplo abaixo 1 Trimestre, Um aluno, uma turma e três disciplinas
No resultado geral do banco, esses valores vão variar, ou seja, terei vários alunos, de diversas turmas, com notas variadas em trimestres diferentes e para diversas disciplinas, mas a estrutura do array será a mesma, só aumentará a quantidade de dados
Pelo que percebo, precisarei de um loop para as turmas, um loop nos alunos, um loop de disciplinas e outro para notas.

Obs.:
Esses valores são resultado de um único select - com inner join
Quero evitar várias requisições ao banco, mas talvez seja melhor usar mais que um select... não sei exatamente.
A pergunta é, qual a melhor maneira de exibir esses dados na estrutura indicada acima, usando PHP?

#Código

Array (
[0] => Array
(
[cod_aluno] => 1498
[cod_trimestre] => 1
[cod_disc] => 430
[aluno] => MIKAEL
[cod_turma] => 66
[turma] => 1º V02
[disciplina] => Matemática
[nota] => 1.00
)

[1] => Array
(
[cod_aluno] => 1498
[cod_trimestre] => 1
[cod_disc] => 507
[aluno] => MIKAEL
[cod_turma] => 66
[turma] => 1º V02
[disciplina] => Química
[nota] => 1.00
)

[2] => Array
(
[cod_aluno] => 1498
[cod_trimestre] => 1
[cod_disc] => 514
[aluno] => MIKAEL
[cod_turma] => 66
[turma] => 1º V02
[disciplina] => Filosofia
[nota] => 1.00
)