premetto che non ho letto il codice, poichè di 200 righe, ma comunque php fornisce una vagonata di funzioni di core per riordinare gli array, in base alla chiave, in base al valore, in base a funzioni custom eccetera eccetera.
asort o natsort potrebbero fare al caso tuo.
se realmente ti interessa imparare questo linguaggio impara le funzioni di core degli array.
PHP è uno dei linguaggi ad avere gli array più potenti che io abbia mai usato, grazie alle funzioni di core e il livello di manipolabilità che permettono, non conoscere come interagire con questi è come guidare bendati.