e tte credo.... se ordini una data partendo dal valore meno significativo a sx come vuoi che la ordini? prima i giorni, poi i mesi e poi gli anni, ovvio no?

Devi ordinarle secondo quanto prevede la matematica: il valore meno significativo a destra il piu' significativo a sinistra.

Quindi se vuoi utilizzare le (tantissime) funzioni per il date/time devi memorizzare la data nel formato previsto yyyy-mm-dd in un campo formato DATE.

Ora non si capisce cosa fai per ottenere la data in quell'array $data ma semplicemente devi "girare" i valori da inserire nel db. Esempio:

Codice PHP:
list($giorno$mese$anno) = explode('-''25-12-2010');
$data_per_db "$anno-$mese-$giorno"