Dev (Back & Front)ARTIGO

Biblioteca de Funções – Parte 05

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] = melancia

Rsort

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 = banana

As 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 = melancia

As 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 = banana

As 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 = limao

Usort


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: tres

Chegamos 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….

É programador, escritor e palestrante. Autor dos livros "CodeIgniter: Produtividade na criação de aplicações web em PHP", "Amazon AWS: Descomplicando a computação na nuvem" e "PHP 7 - Mudanças e Novidades". Idealizador do portal Universidade CodeIgniter, onde escreve semanalmente sobre o framework CodeIgniter.

Ver perfil