Funzione strnatcmp

La funzione strnatcmp esegue un confronto tra due stringhe tenendo conto dell'ordinamento naturale dei caratteri. A differenza del confronto ordinario, questa funzione riconosce i numeri all'interno delle stringhe e li confronta in base al loro valore numerico. La funzione restituisce 0 se le stringhe sono identiche, un numero -1 se la prima stringa è minore della seconda, e un numero maggiore di 1 se la prima stringa è maggiore della seconda.

Sintassi

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

Esempio

Confronto di stringhe con numeri in modo normale e con strnatcmp:

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

Risultato dell'esecuzione del codice:

phpstrcmp result: 1
strnatcmp result: -1

Esempio

Confronto di stringhe con numeri diversi:

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

Risultato dell'esecuzione del codice:

php-1

Esempio

Confronto di stringhe identiche:

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

Risultato dell'esecuzione del codice:

php0

Vedi anche

  • la funzione strcmp,
    che esegue un confronto di stringhe binary-safe
  • la funzione strcasecmp,
    che confronta stringhe senza distinzione tra maiuscole e minuscole
  • la funzione natcasesort,
    che ordina un array utilizzando l'ordinamento naturale senza distinzione tra maiuscole e minuscole