The solution that Sérgio pointed out did not work for me, since, for some reason, she put the words beginning with an accent before the rest of the words:
array(4) {
["Ética_Profissional"]=>
array(2) {
[0]=>
int(12864)
[1]=>
int(12862)
}
["Computação_Aplicada"]=>
array(1) {
[0]=>
int(12861)
}
["Geologia_Ambiental_e_Recursos_Hídricos"]=>
array(1) {
[0]=>
int(11803)
}
["Socioeconomia_e_Sustentabilidade"]=>
array(1) {
[0]=>
int(12858)
}
}
However, I found in this post a solution that worked for me:
$key_values = array(
'Geologia_Ambiental_e_Recursos_Hídricos' => array( 11803 ),
'Computação_Aplicada' => array( 12861 ),
'Socioeconomia_e_Sustentabilidade' => array( 12858 ),
'Ética_Profissional' => array( 12864, 12862 ),
);
function comparar_palavras($name1,$name2){
$patterns = array(
'a' => '(á|à|â|ä|ã|Á|À|Â|Ä|Ã)',
'e' => '(é|è|ê|ë|É|È|Ê|Ë)',
'i' => '(í|ì|î|ï|Í|Ì|Î|Ï)',
'o' => '(ó|ò|ô|ö|õ|Ó|Ò|Ô|Ö|Õ)',
'u' => '(ú|ù|û|ü|Ú|Ù|Û|Ü)'
);
$name1 = preg_replace(array_values($patterns), array_keys($patterns), $name1);
$name2 = preg_replace(array_values($patterns), array_keys($patterns), $name2);
return strcasecmp($name1, $name2);
}
uksort($key_values, "comparar_palavras");
The result is:
array(4) {
["Computação_Aplicada"]=>
array(1) {
[0]=>
int(12861)
}
["Ética_Profissional"]=>
array(2) {
[0]=>
int(12864)
[1]=>
int(12862)
}
["Geologia_Ambiental_e_Recursos_Hídricos"]=>
array(1) {
[0]=>
int(11803)
}
["Socioeconomia_e_Sustentabilidade"]=>
array(1) {
[0]=>
int(12858)
}
}