Si trabajas con arrays .. usa las funciones de tratamiento de arrays de PHP ...
www.php.net/array
Ahí tienes funciones ya implementadas para "ordenar" por ejemplo entre otras cosas.
Pero, también es cierto que si tus datos salen de una consulta SQL a una BBDD ..... lo mejor es que uses el equivalente en SQL para realizar tu proceso, será más óptimo que hacerlo en un array y que lo haga PHP. Cuando trabajas con "datos" .. lo ideal es darle a PHP el trabajo de "obtener los resultados" .. pero no de "procesarlos" .. sobre todo cuando hablamos de que los datos vienen de una BBDD y consulta SQL.
Un saludo,