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!

O que são arrays no PHP

No PHP, array é o nome dado a um conjunto de valores. Esse conjunto de valores é relacionado a chaves. Este tipo de valor no PHP é otimizado de várias maneiras, tornando assim possível usá-lo como um array real, ou uma lista, hashtable (que é uma implementação de mapa), dicionário, coleção, pilha, fila e outras aplicações.

Ainda é possível ter outro array dentro de um valor, assim você consegue facilmente simular árvores de dados.

Abaixo você pode encontrar alguns exemplos para criar e interagir com esses valores:

Com o constrututor da array(), você pode iniciar uma lista separando os pares por chave => valor.

<?php
    $arr = array(
        "foo" => "bar",    // a chave pode ser string
        12 => true        // ou pode ser um inteiro
    );

    echo $arr["foo"]; // retorna o valor da chave foo: bar
    echo $arr[12];    // retorna o valor da chave 12: 1
?>

Abaixo tem um exemplo de como criar um array bidimensional, podendo inserir um array dentro de um valor:

<?php
    $arr = array(
        "arrBidimensional" => array( 6=>"A", 8=>"B", "chave"=>"C" ) // um array como valor
    );

    echo $arr["arrBidimensional"][6];    // Retornará A
    echo $arr["arrBidimensional"][8];    // Retornará B
    echo $arr["arrBidimensional"]["chave"];    // Retornará C
?>