Tri alphabétique
Par Armel FAUVEAU, lundi 6 janvier 2003 à 14:48 :: Trucs et Astuces PHP :: #324 :: rss
PHP dispose de nombreuses fonctions permettant de trier des tableaux suivant différents critères : clefs, valeurs, etc. La plus utilisée est de loin la fonction sort(). C'est très certainement vers celle ci que se tournera le débutant. Cependant, si la problématique consiste à faire un tri par ordre alphabétique, attention aux surprises.
Exemple :
<?php
$tmp = array (
"BABAR",
"Babar",
"abracadabra",
"Foo",
"Bar",
"truc",
"Bidule"
);
sort($tmp);
print_r($tmp);
?>
retournera,
Array
(
[0] => BABAR
[1] => Babar
[2] => Bar
[3] => Bidule
[4] => Foo
[5] => abracadabra
[6] => truc
)
Ce n'est pas forcement l'effet voulu :)Une solution consiste à utiliser la fonction usort(). Elle permet de trier un tableau en utilisant une fonction de comparaison définie par l'utilisateur...ou existante (au sens de PHP). Dans le cas de notre problématique, la fonction strcasecmp() sera tout à fait indiquée. Exemple :
<?php
$tmp = array (
"BABAR",
"Babar",
"abracadabra",
"Foo",
"Bar",
"truc",
"Bidule"
);
usort($tmp, "strcasecmp");
print_r($tmp);
?>
retournera,
Array
(
[0] => abracadabra
[1] => BABAR
[2] => Babar
[3] => Bar
[4] => Bidule
[5] => Foo
[6] => truc
)
Ce qui correspond au résultat désiré.sort()
usort()
strcasecmp()






Commentaires
#1 - Le mercredi 8 mars 2006 à 23:49, par aQuEL
#2 - Le samedi 15 septembre 2007 à 18:48, par yoda1490
#3 - Le jeudi 6 mars 2008 à 10:03, par nlx
Ajouter un commentaire
Vous pouvez soumettre un commentaire en remplissant le formulaire ci-dessous. Toutes les contributions font l'objet d'une étape de modération par notre équipe.
Le code HTML dans le commentaire sera affiché comme du texte, les adresses internet seront converties automatiquement.