Funções de ordenação
Estas funções servem para organizar os elementos do array de acordo com determinados critérios, tais como: manutenção ou não da associação ente índices e elementos; ordenação por elementos ou por índices; comparação entre dois elementos.
Sort
void sort(array &arr);Coloca em ordem crescente os elementos de um array. Não mantém os relacionamentos com os índices.
Exemplo 1:
<?php
$frutas = array("limao", "laranja", "banana", "melancia");
sort($frutas);
reset($frutas);
while (list($chave, $valor) = each($frutas)) {
echo "frutas[".$chave."] = ".$valor."\n";
}
?>A saída desse programa seria:
fruits[0] = banana
fruits[1] = laranja
fruits[2] = limao
fruits[3] = melanciaRsort
void rsort(array &arr);Coloca em ordem decrescente os elementos de um array. Não mantém os relacionamentos com os índices.
Exemplo 1:
<?php
$frutas = array ("limao", "laranja", "banana", "maçã");
rsort ($frutas);
reset ($frutas);
while (list ($chave, $valor) = each ($frutas)) {
echo "$chave = $valor\n";
}
?>Esse exemplo mostraria:
0 = melancia
1 = limao
2 = laranja
3 = bananaAs frutas foram ordenadas em ordem alfabética decrescente.
Asort
void asort(array &arr);Seu funcionamento assemelha-se à função sort. Coloca os elementos do array em ordem crescente, mantendo o relacionamento com os índices.
Exemplo 1:
<?php
$frutas = array("d" => "limao", "a" => "laranja", "b" => "banana", "c" => "melancia");
asort($frutas);
reset($frutas);
while (list($chave, $valor) = each($frutas)) {
echo "$chave = $valor\n";
}
?>A saída desse programa seria:
b = banana
a = laranja
d = limao
c = melanciaAs frutas foram ordenadas na ordem alfabética, e os índices associados a cada valor foram mantidos.
Arsort
void arsort(array &arr);É o inverso da função asort, colocando os elementos do array em ordem decrescente e mantendo o relacionamento com os índices.
Exemplo 1:
<?php
$frutas = array("d" => "limao", "a" => "laranja", "b" => "banana", "c" => "melancia");
arsort($frutas);
reset($frutas);
while (list($chave, $valor) = each($frutas)) {
echo "$chave = $valor\n";
}
?>A saída deste exemplo seria:
c = melancia
d = limao
a = laranja
b = bananaAs frutas foram ordenadas na ordem alfabética inversa, e os índices associados a cada valor foram mantidos.
Ksort
void ksort(array &arr);Essa função de ordenação baseia-se nos índices, ordenando os elementos de um array de acordo com eles, em ordem crescente, mantendo os relacionamentos.
Exemplo 1:
<?php
$frutas = array("d"=>"limao", "a"=>"laranja", "b" =>"banana", "c"=>"maçã");
ksort($frutas);
reset($frutas);
while (list($chave, $valor) = each($frutas)) {
echo "$chave = $valor\n";
}
?>O programa acima mostraria:
a = laranja
b = banana
c = maçã
d = limaoUsort
void usort(array &arr, function compara);Essa função ordena os elementos de um array sem manter os relacionamentos com os índices, além disso usa uma função para efeito de comparação – definida pelo usuário – como parâmetro. Essa função definida pelo usuário deve fazer a comparação ente 2 elementos do array e retornar os valores 0, 1 ou -1, de acordo com o critério estabelecido pelo usuário.
Exemplo 1:
<?php
function cmp($a, $b) {
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
$a = array(3, 2, 5, 6, 1);
usort($a, "cmp");
while (list($chave, $valor) = each($a)) {
echo "$chave: $valor\n";
}
?>Esse exemplo mostraria:
0: 1
1: 2
2: 3
3: 5
4: 6
Uasort
void uasort(array &arr, function compara);Esta função ordena os elementos de um array mantendo os relacionamentos com os índices, além disso usa uma função para efeito de comparação – definida pelo usuário – como parâmetro. Essa função definida pelo usuário deve fazer a comparação ente 2 elementos do array e retornar os valores 0, 1 ou -1, de acordo com o critério estabelecido pelo usuário.
uksort
void uksort(array &arr, function compara);Esta função ordena o array através dos índices, mantendo os relacionamentos com os elementos, e utiliza para efeito de comparação uma função definida pelo usuário, que deve comparar dois índices do array e retornar 0, 1 ou -1, de acordo com qualquer critério estabelecido pelo usuário.
Exemplo 1:
function cmp($a, $b) {
if ($a == $b) {
return 0;
}
return ($a > $b) ? -1 : 1;
}
$a = array(4 => "quatro", 3 => "tres", 20 => "vinte", 10 => "dez");
uksort($a, "cmp");
while (list($chave, $valor) = each($a)) {
echo "$chave: $valor\n";
}
?>
Esse exemplo mostraria:
20: vinte
10: dez
4: quatro
3: tresChegamos ao final de mais um artigo, e espero que estejam sendo úteis, pois ainda tem muita função pra ser apresentada.
Abraços a todos….







