natsort

natsort -- Ordena um array utilizando o algoritmo da "ordem natural"

Descrição

void natsort ( array array)

Essa função é um implementação do algoritmo que ordena strings alfanuméricas da forma como um ser humano faria . Isso é chamado de " ordenação natural " . Um exemplo da diferença entre esse algoritmo e o algoritmo com o qual o computador classifica strings ( usado em sort( ) ) pode ser visto abaixo :

Exemplo 1 . Exemplo de natsort( )

 
$array1

 
=

 
$array2

 
=

 
array

 
(

 
"img12.png"

 
,

 
"img10.png"

 
,

 
"img2.png"

 
,

 
"img1.png")

 
;

 
sort($array1)

 
;

 
echo

 
"Classificação

 
normal\n"

 
;

 
print_r($array1)

 
;

 
natsort($array2)

 
;

 
echo

 
"\nClassificação

 
da

 
\"ordem

 
natural\"\n"

 
;

 
print_r($array2)

 
;





O código acima geraria a seguinte saída :

 
Classificação

 
normal

 
Array

 
(

 
[0

 
]

 
=

 
img1.png

 
[1

 
]

 
=

 
img10.png

 
[2

 
]

 
=

 
img12.png

 
[3

 
]

 
=

 
img2.png

 
)

 
Classificação

 
da

 
"ordem

 
natural

 
"

 
Array

 
(

 
[3

 
]

 
=

 
img1.png

 
[2

 
]

 
=

 
img2.png

 
[1

 
]

 
=

 
img10.png

 
[0

 
]

 
=

 
img12.png

 
)



Para mais informações veja: Martin Pool's Natural Order String Comparison page.

Nota : Se quiser manter a correlação entre chaves e valores , considere a possibilidade de utilizar usort( $arr , 'strnatcmp' ) .

Veja também natcasesort( ) , strnatcmp( ) e strnatcasecmp( ) .