strnatcmp

strnatcmp -- Compara cadenas usando un algoritmo de "orden natural"

Descripción

int strnatcmp ( string cad1, string cad2)

Esta función implementa un algoritmo de comparación que ordena las cadenas alfanuméricas como lo haría un ser humano , que es lo que se denomina " orden natural " . A continuación se puede ver un ejemplo de la diferencia entre este algoritmo y los algoritmos de ordenación de cadenas habituales en los ordenadores ( utilizados en strcmp( ) ) :

 
$matriz1

 
=

 
$matriz2

 
=

 
array

 
(

 
"img12.png"

 
,"img10.png"

 
,"img2.png"

 
,"img1.png")

 
;

 
echo

 
"Comparación

 
de

 
cadenas

 
estándar\n"

 
;

 
usort($matriz1

 
,"strcmp")

 
;

 
print_r($matriz1)

 
;

 
echo

 
"\nComparación

 
de

 
cadenas

 
en

 
orden

 
natural\n"

 
;

 
usort($matriz2

 
,"strnatcmp")

 
;

 
print_r($matriz2)

 
;



El código anterior generará la siguiente salida:
 
Comparación

 
de

 
cadenas

 
estándar

 
Array

 
(

 
[0

 
]

 
=

 
img1.png

 
[1

 
]

 
=

 
img10.png

 
[2

 
]

 
=

 
img12.png

 
[3

 
]

 
=

 
img2.png

 
)

 
Comparación

 
de

 
cadenas

 
en

 
orden

 
natural

 
Array

 
(

 
[0

 
]

 
=

 
img1.png

 
[1

 
]

 
=

 
img2.png

 
[2

 
]

 
=

 
img10.png

 
[3

 
]

 
=

 
img12.png

 
)



Para más información, vea la página de Martin Pool sobre Comparación de Cadenas en Orden Natural .

De forma similar a otras funciones de comparación de cadenas , esta devuelve 0 si cad1 es menor que cad2 ; 0 si cad1 es mayor que cad2 , y 0 si son iguales .

Nótese que esta comparación es sensible a mayúsculas y minúsculas .

Vea también ereg( ) , strcasecmp( ) , substr( ) , stristr( ) , strcmp( ) , strncmp( ) , strnatcasecmp( ) , y strstr( ) .