Función strnatcmp

La función strnatcmp realiza una comparación de dos cadenas teniendo en cuenta el orden natural de los caracteres. A diferencia de la comparación ordinaria, esta función reconoce los números dentro de las cadenas y los compara por valor numérico. La función devuelve 0 si las cadenas son idénticas, un número -1 si la primera cadena es menor que la segunda, y un número mayor que 1 si la primera cadena es mayor que la segunda.

Sintaxis

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

Ejemplo

Comparación de cadenas con números de manera ordinaria y 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;
?>

Resultado de la ejecución del código:

phpstrcmp result: 1
strnatcmp result: -1

Ejemplo

Comparación de cadenas con diferentes números:

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

Resultado de la ejecución del código:

php-1

Ejemplo

Comparación de cadenas idénticas:

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

Resultado de la ejecución del código:

php0

Véase también

  • la función strcmp,
    que realiza una comparación de cadenas segura a nivel binario
  • la función strcasecmp,
    que compara cadenas sin distinguir entre mayúsculas y minúsculas
  • la función natcasesort,
    que ordena un array utilizando un orden natural sin distinguir entre mayúsculas y minúsculas