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).
- SORT_REGULAR – comparação normal dos itens
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, SORT_STRING); echo "Como strings -> SORT_STRING:<br>"; foreach ($numeros as $num) { echo "$num<br>"; } echo "<br>";
echo "Ordem natural -> SORT_NATURAL:<br>"; sort($numeros, 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:
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
Escreva um comentário