Para ordenar array php, você deve utilizar uma das funções abaixo. Para cada situação existe uma função disponível.
Veja a lista de funções disponíveis:
- ksort() – Ordenar um array pelas chaves
- krsort() – Organizar um array pelas chaves em ordem descrescente
- asort() – Alterar um array mantendo a associação entre índices e valores
- arsort() – Ordernar um array em ordem descrescente mantendo a associação entre índices e valores
- uksort() – Ajusta um array pelas chaves utilizando uma função de comparação definida pelo usuário
- sort() – Os elementos serão ordenados do menor para o maior ao final da execução dessa função.
- natsort() – Modifica o array utilizando o algoritmo da “ordem natural”
- rsort() – Altera a ordem de um array em descrescente
ksort
A função ksort() é responsável por ordenar um array pelas chaves:
<?php
$palavras = array("d"=>"Dicas", "a"=>"PHP", "b" =>"Tutorial", "c"=>"Tutorial de PHP");
print_r( $palavras ); // Array antes da funação ( [d] => Dicas [a] => PHP [b] => Tutorial [c][/c] => Tutorial de PHP )
ksort( $palavras ); // Ordenando um array pela chave
print_r( $palavras ); // Array depois da função ( [a] => PHP [b] => Tutorial [c][/c] => Tutorial de PHP [d] => Dicas )
?>
Para ordenar os índices de forma decrescente, utilize a função krsort().
sort
A função asort() ordena um array mantendo a associação entre índices e valores, mas a ordeneção é feita pelos valores e não índices:
<?php
$palavras = array("b" =>"Tutorial", "d"=>"Dicas", "a"=>"PHP", "c"=>"Tutorial de PHP");
print_r( $palavras ); // Array antes da funação ( [b] => Tutorial [d] => Dicas [a] => PHP [c][/c] => Tutorial de PHP )
asort( $palavras ); // Ordenando um array pela chave
print_r( $palavras ); // Array depois da função ( [d] => Dicas [a] => PHP [b] => Tutorial [c][/c] => Tutorial de PHP )
?>
Para ordenar os valores de forma decrescente, utilize a função arsort(). Com isso os índices serão mantidos e apenas alterados a ordenação dos valores para decrescente.
uksort
A função uksort() ordena um array pelas chaves utilizando uma função de comparação definida pelo usuário:
<?php
function ordena( $a, $b ) {
$a = ereg_replace('^(a|an|the) ', '', $a);
$b = ereg_replace('^(a|an|the) ', '', $b);
return strcasecmp($a, $b);
}
$palavras = array("b" =>"Tutorial", "d"=>"Dicas", "a"=>"PHP", "c"=>"Tutorial de PHP");
print_r( $palavras ); // Array antes da funação ( [b] => Tutorial [d] => Dicas [a] => PHP [c][/c] => Tutorial de PHP )
uksort( $palavras, "ordena" ); // Ordenando um array com uma função definida pelo usuário
print_r( $palavras ); // Array depois da função ( [d] => Dicas [a] => PHP [b] => Tutorial [c][/c] => Tutorial de PHP )
?>
sort
A função sort() ordena um array:
<?php
$palavras = array("Tutorial", "Dicas", "PHP", "Tutorial de PHP");
print_r( $palavras ); // Array antes da funação ( [0] => Tutorial [1] => Dicas [2] => PHP [3] => Tutorial de PHP )
sort( $palavras ); // A ordenação será por ordem alfabética.
print_r( $palavras ); // Array depois da função ( [0] => Dicas [1] => PHP [2] => Tutorial [3] => Tutorial de PHP )
?>
Para ordenação decrescente, utilize a função rsort().
natsort
A função natsort() ordena um array utilizando o algoritmo da “ordem natural“:
<?php
$palavras = $videos = array("img12.png", "img10.png", "img2.png", "img1.png");
print_r( $palavras ); // Array antes da função ( [0] => img12.png [1] => img10.png [2] => img2.png [3] => img1.png )
natsort( $videos ); // A ordenação será por ordem alfabética.
print_r( $videos ); // Array depois da função ( [0] => img1.png [1] => img10.png [2] => img12.png [3] => img2.png )
?>
Dúvidas deixe nos comentário!