Ordernar Array no PHP

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!

Seu comentário é muito importante! Conte pra gente o que você achou desse conteúdo.