Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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?
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
)Eu usaria foreach e o primeiro nó do array seria turma ao invés de aluno, mas é isso mesmo que você disse, loops
exemplo:
<?php
foreach($resultado as $id_turmas => $turmas){
// Montar as informações da Turma do laço
foreach($turmas as $id_alunos => $alunos){
// Montar as informações do aluno do laço
foreach($alunos as $id_disciplinas => $disicplinas){
// Montar as informações da disciplina do laço
foreach($disciplinas as $id_notas => $notas){
// Montar as informações da nota do laço
}
}
}
}
foi mal.... tinha entendido outra