Compare des chaînes par ordre "naturel"
int strnatcmp
(string str1, string str2)
strnatcmp() implémente un algorithme de
comparaison qui traite les chaînes alpha-numériques comme
un être humain : 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 comparaison de chaînes
(comme lorsqu'on utilise strcmp()) est
illustré ci-dessous :
<?php
$arr1 = $arr2 = array("img12.png","img10.png","img2.png","img1.png");
echo "Comparaison standard de chaînes\n";
usort($arr1,"strcmp");
print_r($arr1);
echo "\nComparaison de chaînes par ordre naturel\n";
usort($arr2,"strnatcmp");
print_r($arr2);
?>
L'exemple précédent affiche ceci :
Comparaison standard de chaînes
Array
(
[0] => img1.png
[1] => img10.png
[2] => img12.png
[3] => img2.png
)
Comparaison de chaînes par ordre naturel
Array
(
[0] => img1.png
[1] => img2.png
[2] => img10.png
[3] => img12.png
)
Pour plus d'informations, reportez-vous à Martin Pool Natural Order String Comparison.
Comme les autres fonctions de comparaison de chaînes, elle retourne
une valeur < 0 si str1 est plus petite que
str2; > 0 si str1
est plus grande que str2, et 0 si elles sont égales.
Notez que ces comparaisons sont sensibles à la casse.
Voir aussi
@xref{function.ereg,,ereg()},
strcasecmp(),
substr(),
stristr(),
strcmp(),
strncmp(),
strnatcasecmp(),
strstr(),
natsort(),
strncasecmp() et
natcasesort().