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:

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

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