Forum und email

natsort

(PHP 4, PHP 5)

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:

Example#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 uasort($arr, 'strnatcmp').

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