OVH Cloud OVH Cloud

tri alphabetiques et les accents

2 réponses
Avatar
LoLo
Bonjour,

Je récupère une liste de nom, extrait d'une base MySql.
Pour trier les noms sans tenir compte de la casse, j'utilise :
usort($nom, "strcasecmp");
La commande natcasesort($nom); ne trie pas correctement, et je ne sais
pas pourquoi.

Si le nom contient des accents c'est le tri ne s'effectue pas
correctement. Existe-t-il une fonction pour trier en tenant compte des
accents, ou dois je appliquer un str_replace sur tous les nom ou ?

Amicalement
Laurent
--
Nous n'héritons pas la Terre de nos parents.
Nous l'empruntons à nos enfants.

Proverbe africain / Greenpeace

2 réponses

Avatar
LoLo
Bon, je réponds à moi même?
J'ai réglé le problème en faisant le tri avec une requête MySQL.

Amicalement
Laurent

--
Nous n'héritons pas la Terre de nos parents.
Nous l'empruntons à nos enfants.

Proverbe africain / Greenpeace
Avatar
loufoque
LoLo a dit le 16/05/2005 16:25:
Bonjour,

Je récupère une liste de nom, extrait d'une base MySql.
Pour trier les noms sans tenir compte de la casse, j'utilise :
usort($nom, "strcasecmp");


Utilise plutôt MySQL pour trier, je ne vois pas l'intérêt de passer par PHP.


La commande natcasesort($nom); ne trie pas correctement, et je ne sais
pas pourquoi.


Parce que ce n'est pas la même chose, c'est l'algorithme naturel, cf le
manuel.


Si le nom contient des accents c'est le tri ne s'effectue pas
correctement. Existe-t-il une fonction pour trier en tenant compte des
accents


C'est une histoire de collation.
strcasecmp doit utiliser la collation locale.

Enfin MySQL fait ça très bien...