natsort
(PHP 4, PHP 5)
natsort — Trie un tableau avec l'algorithme à "ordre naturel"
Description
bool natsort
( array
&$array
)
natsort() implémente un algorithme
de tri qui traite les chaînes alphanumériques du tableau
array
comme un être humain tout en
conservant la relation clé/valeur. C'est ce qui est appelé
l'"ordre naturel". Un exemple de la différence de traitement
entre un tel algorithme et un algorithme de tri de chaînes
(comme lorsqu'on utilise sort()) est
illustré ci-dessous.
Liste de paramètres
-
array
-
Le tableau d'entrée.
Valeurs de retour
Cette fonction retourne TRUE
en cas de
succès ou FALSE
si une erreur survient.
Historique
Version | Description |
---|---|
5.2.10 | Les chaines numériques alignées par des zéros (e.g., '00005') ignorent les zéros d'alignement. |
Exemples
Exemple #1 Exemple d'utilisation de base avec natsort()
<?php $array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png"); asort($array1); echo "Standard sorting\n"; print_r($array1); natsort($array2); echo "\nNatural order sorting\n"; print_r($array2); ?>
<?php echo "Nombres négatifs\n"; $negative = array('-5','3','-2','0','-1000','9','1'); print_r($negative); natsort($negative); print_r($negative); echo "Alignement avec zéros\n"; $zeros = array('09', '8', '10', '009', '011', '0'); print_r($zeros); natsort($zeros); print_r($zeros); echo "Autres caractères pouvant interférer\n"; $images_oops = array('image_1.jpg','image_12.jpg', 'image_21.jpg', 'image_4.jpg'); print_r($images_oops); natsort($images_oops); print_r($images_oops); echo "Tri par clés\n"; $smoothie = array('orange' => 1, 'apple' => 1, 'yogurt' => 4, 'banana' => 4); print_r($smoothie); uksort( $smoothie, 'strnatcmp'); print_r($smoothie); ?>
L'exemple ci-dessus va afficher :
Nombres négatifs Array ( [0] => -5 [1] => 3 [2] => -2 [3] => 0 [4] => -1000 [5] => 9 [6] => 1 ) Array ( [2] => -2 [0] => -5 [4] => -1000 [3] => 0 [6] => 1 [1] => 3 [5] => 9 ) Alignement avec zéros Array ( [0] => 09 [1] => 8 [2] => 10 [3] => 009 [4] => 011 [5] => 0 ) Array ( [5] => 0 [1] => 8 [3] => 009 [0] => 09 [2] => 10 [4] => 011 ) Autres caractères pouvant interférer Array ( [0] => image_1.jpg [1] => image_12.jpg [2] => image_21.jpg [3] => image_4.jpg ) Array ( [0] => image_1.jpg [3] => image_4.jpg [1] => image_12.jpg [2] => image_21.jpg ) Tri par clés Array ( [orange] => 1 [apple] => 1 [yogurt] => 4 [banana] => 4 ) Array ( [apple] => 1 [banana] => 4 [orange] => 1 [yogurt] => 4 )
Voir aussi
- natcasesort() - Trie un tableau avec l'algorithme à "ordre naturel" insensible à la casse
- Les fonctions de tri des tableaux
- strnatcmp() - Comparaison de chaînes avec l'algorithme d'"ordre naturel"
- strnatcasecmp() - Comparaison de chaînes avec l'algorithme d'"ordre naturel" (insensible à la casse)