Ordenação de Arrays em PHP

Ordenação de Arrays em PHP -Função sort

A função sort é utilizada para ordenar os elementos de um array em PHP. Os elementos são ordenados do menor para o maior valor, significando do menor número para o maior, em arrays numéricos, e ordem alfabética, em arrays de strings. Esse comportamento pode ser alterado por meio de flags passadas como argumento para a função.

Sintaxe:

sort(array [, $sort_flags = OPÇÃO])

Parâmetros:

  • array - Array a ser ordenado
  • sort_flags - Parâmetro opcional que modifica o comportamento da ordenação. Seus valores possíveis são:
    • SORT_REGULAR - comparação normal dos itens
      SORT_NUMERIC - comparar itens numericamente
    • SORT_STRING - comparar itens como strings
    • SORT_LOCALE_STRING - comparar itens como strings, baseando-se no locale atual do sistema
    • SORT_NATURAL - comparar itens como strings usando ordem natural (a partir da versão 5.4.0).
    • SORT_FLAG_CASE - ordenar strings sem levar em conta o caso (maiúsculas ou minúsculas), quando combinada com SORT_STRING ou SORT_NATURAL (a partir da versão 5.4.0).

A função retorna o valor TRUE se a operação tiver êxito, ou FALSE se falhar.

Exemplos

1 - Ordenar array em ordem alfabética:

<?php
 $frutas = array("laranja", "maçã", "banana", "caju", "melancia", "uva", "graviola");
 sort($frutas);
 foreach ($frutas as $fruta) {
   echo "$fruta<br>";
 }
 echo "<br>";
?>

2 - Ordenar o array anterior em ordem alfabética, mostrando chaves e seus respectivos valores:

<?php
foreach ($frutas as $chave => $valor) {
 echo "Frutas[" . $chave . "] = " . $valor . "<br>";
}
echo "<br>";
?>

3 - Ordenação reversa: função rsort():

<?php
 $frutas = array("laranja", "maçã", "banana", "caju", "melancia", "uva", "graviola");
 rsort($frutas);
 foreach ($frutas as $fruta) {
 echo "$fruta<br>";
 }
 echo "<br>";
?>

4 - Um cuidado especial deve ser tomado quando os itens do array são tratados como strings. Vejamos um exemplo que mostra a diferença entre a comparação como strings e a ordem natural de ordenação do PHP. Suponha um array que contenha os itens a seguir (strings):

{ 2 12 23 11 6 5 18 24 29 1 3 31 17 }

Vamos ordenar esse array usando a ordem por string (flag  SORT_STRING) e depois combinando-a com a flag de ordem natural (SORT_NATURAL):

<?php
 $numeros = array(2, 12, 23, 11, 6, 5, 18, 24, 29, 1, 3, 31, 17);
 sort($numeros);
 echo "Como strings -> SORT_STRING:<br>";
 foreach ($numeros as $num) {
   echo "$num<br>";
 }
 echo "<br>";
 echo "Ordem natural -> SORT_NATURAL:<br>";
 sort($numeros, SORT_SRING | SORT_NATURAL);
 foreach ($numeros as $num) {
   echo "$num<br>";
 }
 echo "<br>";
?>

Podemos ver a saída do script na figura a abaixo. Note a diferença na ordenação dos elementos do array:

Ordenar arrays em PHP - comando sort

A ordem natural nos retorna os valores em ordem numérica. Já a ordem como string retorna os valores em ordem alfanumérica, como por exemplo gerenciadores de arquivos mostram os nomes de arquivos.

Próximo: Introdução às Funções em PHP

 

 

Sobre Fábio dos Reis (1209 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

1 Trackbacks & Pingbacks

  1. Curso de PHP - Declaração e Manipulação de Arrays

Escreva um comentário

Seu e-mail não será divulgado


*