Prova ad usare una array di appoggio:
copi i dati in modo ordinato secondo il criterio che preferisci in un array temporaneo, e poi (se proprio devi) li risposti in quello di partenza.
E' un'idea... magari ti serve, magari no... bho....
forse qui (negli appunti di ALGORITMI) trovi qualcosa che ti può essere utile per prendere qualche spunto, e anche degli esempi di codice (in C però, non php... ma le modifiche dovrebbero essere minime.)