(PHP 4, PHP 5, PHP 7, PHP 8)
natsort — Trie un tableau avec l'algorithme à "ordre naturel"
&$array
): true
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.
Note:
Si deux membres se comparent comme égaux, ils maintiennent leur ordre original. Antérieur à PHP 8.0.0, leur ordre relatif dans le tableau trié n'est pas défini.
Note:
Réinitialise le pointeur interne du tableau au premier élément.
array
Le tableau d'entrée.
Retourne toujours true
.
Version | Description |
---|---|
8.2.0 |
Le type de retour est maintenant true , auparavant il était bool.
|
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);
?>
L'exemple ci-dessus va afficher :
Standard sorting Array ( [3] => img1.png [1] => img10.png [0] => img12.png [2] => img2.png ) Natural order sorting Array ( [3] => img1.png [2] => img2.png [1] => img10.png [0] => img12.png )
Pour plus de détails, rendez-vous sur le site de Martin Pool sur » la comparaison de chaînes en ordre naturel.
Exemple #2 Exemples montrant les pièges de natsort()
<?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);
?>
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 )