Utilisez l'algorithme "naturel" pour comparer deux chaînes (insensible à la casse) :
<?phpecho strnatcasecmp("2Bonjour tout le monde !","10Bonjour MONDE !");echo "<br>";echo strnatcasecmp("10Bonjour tout le monde !","2Bonjour MONDE !");?>La fonction strnatcasecmp() utilise un algorithme « naturel » pour comparer deux chaînes (insensible à la casse).
En arithmétique naturelle, le nombre 2 est inférieur au nombre 10. Dans le tri informatique, 10 est inférieur à 2 car le premier nombre de 10 est inférieur à 2.
Remarque : strnatcasecmp() n'est pas sensible à la casse.
strnatcasecmp( chaîne1,chaîne2 )
paramètre | décrire |
---|---|
chaîne1 | Requis. Spécifie la première chaîne à comparer. |
chaîne2 | Requis. Spécifie la deuxième chaîne à comparer. |
Valeur de retour : | La fonction renvoie : 0 - si les deux chaînes sont égales <0 - si chaîne1 est inférieure à chaîne2 >0 - si chaîne1 est supérieure à chaîne2 |
---|---|
Version PHP : | 4+ |
La différence entre l'algorithme naturel (strnatcmp) et l'algorithme conventionnel de tri de chaînes informatiques (strcmp) :
<?php$arr1 = $arr2 = array("pic1","pic2","pic10","pic01","pic100","pic20","pic30","pic200");echo "Comparaison de chaînes standard" ."<br>";usort($arr1,"strcmp");print_r($arr1);echo "<br>";echo "Comparaison de chaînes d'ordre naturel"."<br>";usort($arr2,"strnatcmp");print_r($arr2);?>