Perchè per lui sono STRINGHE e la stringa "123" è "più piccola" della stringa "2" (ordinamento alfabetico)
Per cui devi fare un "casting" quando valorizzi l'array
Esempio superbanale
In generale devi fare il casting con (int) o (float) o altro tipo numericoCodice PHP:
foreach ($mioarray as $key=>$value)
$mioarray[$key] = (int)$value;