Ordenar palabras alfabéticamente en español
Esta es la forma más sencilla de ordenar alfabéticamente palabras en español.
La función tiene en cuenta los acentos y las «ñ» característicos de este idioma.
function sortSpanish($a, $b){ $alphabet = 'aábcdeéfghiíjklmnñoópqrstuúvwxyz'; $a = mb_strtolower($a); $b = mb_strtolower($b); for ($i = 0; $i < mb_strlen($a); $i++) { if ($i > mb_strlen($b)) { return 1; } if (mb_strpos($alphabet, mb_substr($a, $i, 1)) > mb_strpos($alphabet, mb_substr($b, $i, 1))) { return 1; } else { return -1; } } } $words = array('atención', 'Alabar', 'Álava', 'Apero'); usort($words , 'sortSpanish'); foreach ($words as $word) { echo $word."<br/>"; }