(PHP 4, PHP 5, PHP 7, PHP 8)
strnatcmp — Comparações de strings usando um algoritmo de "ordem natural"
Esta função implementa um algoritmo de comparação que ordena strings alfanuméricas da mesma forma que um ser humano faria, o que é descrito como "ordenação natural". Observe que esta comparação é sensível a maiúsculas/minúsculas.
string1A primeira string.
string2A segunda string.
Retorna um valor menor que 0 se string1
for abaixo de string2; um valor maior
que 0 se string1 for acima de
string2 e 0 se elas
forem iguais.
Nenhum significado em particular pode ser inferido com confiança desse valor a não
ser o seu sinal.
| Versão | Descrição |
|---|---|
| 8.2.0 |
Não é mais garantido que esta função retornará
strlen($string1) - strlen($string2) quando os comprimentos das strings
não forem iguais, mas ppodem agora retornar -1 ou
1 no lugar.
|
Um exemplo da diferença entre este algoritmo e os algoritmos de ordenação de strings comuns (usados em strcmp()) pode ser visto abaixo:
Exemplo #1 strcmp()
<?php
$arr1 = $arr2 = array("img12.png", "img10.png", "img2.png", "img1.png");
echo "Comparação padrão de strings\n";
usort($arr1, "strcmp");
print_r($arr1);
echo "\nComparação de strings em ordem natural\n";
usort($arr2, "strnatcmp");
print_r($arr2);
?>O exemplo acima produzirá:
Comparação padrão de strings
Array
(
[0] => img1.png
[1] => img10.png
[2] => img12.png
[3] => img2.png
)
Comparação de strings em ordem natural
Array
(
[0] => img1.png
[1] => img2.png
[2] => img10.png
[3] => img12.png
)