Fonction strnatcmp

La fonction strnatcmp effectue une comparaison de deux chaînes en tenant compte de l'ordre naturel des caractères. Contrairement à une comparaison standard, cette fonction reconnaît les nombres à l'intérieur des chaînes et les compare par leur valeur numérique. La fonction retourne 0 si les chaînes sont identiques, un nombre -1 si la première chaîne est inférieure à la seconde, et un nombre supérieur à 1 si la première chaîne est supérieure à la seconde.

Syntaxe

phpstrnatcmp(string $str1, string $str2): int

Exemple

Comparaison de chaînes avec nombres de manière standard et avec strnatcmp :

php<?php
  $res1 = strcmp("file2.txt", "file10.txt");
  $res2 = strnatcmp("file2.txt", "file10.txt");
  
  echo "strcmp result: " . $res1 . "\n";
  echo "strnatcmp result: " . $res2;
?>

Résultat de l'exécution du code :

phpstrcmp result: 1
strnatcmp result: -1

Exemple

Comparaison de chaînes avec des nombres différents :

php<?php
  $res = strnatcmp("image5.jpg", "image15.jpg");
  echo $res;
?>

Résultat de l'exécution du code :

php-1

Exemple

Comparaison de chaînes identiques :

php<?php
  $res = strnatcmp("hello123", "hello123");
  echo $res;
?>

Résultat de l'exécution du code :

php0

Voir aussi

  • la fonction strcmp,
    qui effectue une comparaison de chaînes binaire-safe
  • la fonction strcasecmp,
    qui compare les chaînes sans tenir compte de la casse
  • la fonction natcasesort,
    qui trie un tableau en utilisant l'ordre naturel sans tenir compte de la casse