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); |
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
) |
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().