tengo una matriz que contiene los nombres de los idiomas en español:Ordenar una matriz con caracteres especiales en PHP
$lang["ko"] = "coreano"; //korean
$lang["ar"] = "árabe"; //arabic
$lang["es"] = "español"; //spanish
$lang["fr"] = "francés"; //french
necesito para ordenar la matriz y mantiene la asociación de índices, así que uso asort() con el SORT_LOCALE_STRING
setlocale(LC_ALL,'es_ES.UTF-8'); //this is at the beginning (config file)
asort($lang,SORT_LOCALE_STRING);
print_r($lang);
El resultado esperado sería en este orden:
- Array ([ar] => árabe [ko] => coreano [ES] => español [FR] => Frances)
Sin embargo, esto es lo que estoy recibiendo:
- array ([ko] => coreano [ES] => español [fr] => Frances [ar] => árabe)
me estoy perdiendo algo? ¡Gracias por tus comentarios! (Mi servidor está utilizando la Versión PHP 5.2.13)
Conjetura salvaje: posiblemente porque 'c' viene antes que' á'? –
Es por eso que estoy usando SORT_LOCALE_STRING. 'á' debería venir después de 'a' y antes de 'c'. – andufo
bien entonces, buena suerte :) –