(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.
string1
A primeira string.
string2
A 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:
<?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 )