Galera, já torrei aqui... vou pedir ajuda aos universitários!
O caso é o seguinte, eu tenho uma função que me retorna um array com
dados de uma consulta sql:
public function ResultaGrade($flt) {
if ($flt == 0) {
$sql = "select g.*, c.nomeCurso, d.nomeDisciplina,
t.nomeTurma from grade g, curso c, turma t, disciplina d where
g.idCurso=c.idCurso and g.idDisciplina=d.idDisciplina and
g.idTurma=t.idTurma order by c.nomeCurso, t.nomeTurma,
d.nomeDisciplina";
$qry = mysql_query($sql,$this->conexao->conectado);
if (mysql_num_rows($qry) > 0) {
while ($res = mysql_fetch_assoc($qry)) {
$arrayGrade[$res['idGrade']] = array($res
['idCurso'], $res['nomeCurso'], array($res['idTurma'] => $res
['nomeTurma'], $res['idDisciplina'] => $res['nomeDisciplina']));
}
} else {
$arrayGrade[][] = "Nenhuma grade curricular
cadastrada";
}
mysql_free_result($qry);
return $arrayGrade;
} else {
}
}
Bem, recebendo esta matriz, terei como exemplo:
Array
(
[3] => Array
(
[0] => 1
[1] => Direito
[2] => Array
(
[1] => I Semestre
[71] => Ciência Política e Teoria do Estado
)
)
[1] => Array
(
[0] => 3
[1] => Sistemas de Informação
[2] => Array
(
[1] => I Semestre
[69] => Fundamentos de Sistemas de Informação
)
)
[2] => Array
(
[0] => 3
[1] => Sistemas de Informação
[2] => Array
(
[1] => I Semestre
[70] => Introdução à Filosofia
)
)
)
Obviamente, quando a tabela estiver populada os cursos vão se repetir
no resultado e é por eles que quero agrupar a listagem, sendo que
preciso ter também o valor de "idGrade" para ter uma ligação mais
rápida depois.
(Ou será que dispensando esse campo e utilizando a combinação dos
outros três "ids" poderia simplificar o caso?...)
Enfim, precisso varrer este array para agrupar seus resultados para
que a listagem final fique assim:
CURSO: XYZ
TURMA: 1
DISCIPLINA: XYZ
DISCIPLINA: ABC
DISCIPLINA: JIOWKERJ
TURMA: 2
DISCIPLINA: UIRUWOERW
DISCIPLINA: KDJFASODF
DISCIPLINA: J87S89DYSJH
CURSO: TRRRT
TURMA: 1
DISCIPLINA: GHTYR
DISCIPLINA: HFFGHRTY
DISCIPLINA: 657YFGHF
Sendo que preciso mesmo inicialmente de todos os dados, por isso que
não filtro no SQL. (Mas falando nisso, será que aquelas condicionais
do MySQL ou alguma função interna dele possa me retornar os resultados
já da maneira que quero?)
Bem pessoal, tentei aqui tudo que sabia, foi na documentação do php e
não achei nada que resolvesse sobre arrays, nem no histórico da lista
e nas buscas do Google (tô me sentindo o primeirão!!! melhor do que
dizer que talvez não tenha sabido procurar ).
Portanto, conto com a ajuda dos cavalheiros e senhoras que me honrarem
ler esta mensagem.
--
Frat.,
Gustavo Adolfo
http://anotacoesdiversas.blogspot.com/