El tema que mencionan siempre lo he visto tratado de forma "visual" con alguna aplicación javascript/DHMTL para entregar al script de proceso (PHP en este caso) el conjunto de registro -> "view_index" que quedó despues de todos los movimientos. De esta forma el "ordenamiento" se hace o mejor dicho se carga el proceso al "lado del cliente".
Sería algo tipo:
http://javascript.internet.com/forms...ion-order.html
O algo más "vistoso" en DHTML
http://www.dhtmlgoodies.com/index.ht...=arrange_nodes
El caso es que con PHP sólo generamos nuestros registros y el javascript/DHTML que esas rutinas necesiten .. luego sólo procesamos lo que estas rutinas dejan "ordenado" con nuestro nuevo criterio.
Si lo hacemos en PHP directo .. debería ser un proceso recursivo. Lento lo más probable si hay gran cantidad de datos. (mi fuerte no es la "recursividad").
Un saludo,