Ordinare array bidimensionale

FabrizioLodesani

Nuovo Utente
30 Ago 2012
3
0
0
Ciao a tutti, ecco il mio problema:

Apro un database Access e mi connetto:

$conn = new COM("ADODB.Connection");
$cnStr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=".
realpath(DBNAME).";";
$conn->open($cnStr);
$rs = $conn->execute("SELECT * FROM ".DBTBL);


poi estraggo soltanto i record che mi interessano e con questi ci popolo un' array bidimensionale:

$AlphaArr = Array();
$c=0;
while (!$rs->EOF) {
$AlphaArr[$c]["Title"]= $rs->Fields['Titolo']->value;
$AlphaArr[$c]["Year"]= $rs->Fields['Anno']->value;
$AlphaArr[$c]["Genre"]= $rs->Fields['Genere']->value;
$c++;
$rs->MoveNext();
}


Adesso ho bisogno di un output ordinato alfabeticamente prima per Title, poi per Year e poi per Genre.

Utilizzando la funzione:

array_multisort($AlphaArr,SORT_ASC);

ottengo l'ordinamento solo per il primo valore (Titolo)

Come posso ottener l'ordinamento dell' array con il secondo campo (Year) e il terzo (Genre)??

Grazie mille.
Fabrizio
 
Ciao,
ma non puoi ordinarli nella query?
Codice:
ORDER BY title,Year,Genere
 
Ciao,
ma non puoi ordinarli nella query?
Codice:
ORDER BY title,Year,Genere

In realta' non sono cosi' ferrato su php e la gestione dei DB..ho tratto qua e la alcuni pezzi di codice utilizzando la mia conoscenza
di altri linguaggi di programmazione e sono riuscito a far funzionare tutto lo stesso ma utilizzando ridondanti parti di codice.
Ho semplicemente caricato lo stesso recordset in tre array distinti, ognuno con uno dei tre campi per primo e poi ho utilizzato
l ' array_multisort a turno su tutti e tre. L'unica cosa e' che mi piacerebbe ottimizzare il codice.
Puoi spiegrami con due linee di codice come procederesti?

Grazie, Fabrizio.
 

Discussioni simili