guarda che reset() serve dopo il sort() per riportare il puntatore all'inizio dell'array. Sort() lo lascia al fondo. Chiaro che reset() da solo faccia una pippa...

prova con le varie funzioni che hai a disposizione per gli array...

ma sono partito dal principio che se cambi l'indice numerico per compattarlo poca importanza abbia l'associazione indice <-> contenuto




ps.... usa asort() invece di sort(). Mantiene l'associazione degli indici.