Hola, dices que utilizas BD, por que no haces la consulta segun el criterio que pides, es mucho mas facil, pues te estas complicando, la vida, intentando hacerlo via arrays, que dicho sea de paso, no es muy usado, en fin creo que seria el metodo de la burbuja para ordenarlos, y en cuanto a la no perder el orden del otro array, pues usa un array auxiliar y listo. creo que asi, segun entendi jaja