Iniciando no PHP: Funções para tratamento de arrays


Autor/fonte: Mauricio Vivas
Tags: [ iniciando no php ]



Digg del.icio.us

Funções genéricas

. array

array array(...);

É a função que cria um array a partir dos parâmetros forncidos. É possível fornecer o índice de cada elemento. Esse índice pode ser um valor de qualquer tipo, e não apenas de inteiro. Se o índice não for fornecido o PHP atribui um valor inteiro sequencial, a partir do 0 ou do último índice inteiro explicitado. Vejamos alguns exemplos:

Exemplo 1:

$teste = array("um", "dois","tr"=>"tres",5=>"quatro","cinco");

Temos o seguinte mapeamento:

0 => "um" (0 é o primeiro índice, se não houver um explicito)
1 => "dois" (o inteiro seguinte)
"tr" => "tres"
5 => "quatro" (valor explicitado)
6 => "cinco" (o inteiro seguinte ao último atribuído, e não o próximo valor, que seria 2)

Exemplo 2:

$teste = array("um", 6=>"dois","tr"=>"tres",5=>"quatro","cinco");

Temos o seguinte mapeamento:

0 => "um"
6 => "dois"
"tr" => tres
5 => "quatro" (seria 7, se não fosse explicitado)
7 => "cinco" (seria 6, se não estivesse ocupado)

Em geral, não é recomendável utilizar arrays com vários tipos de índices, já que isso pode confundir o programador. No caso de realmente haver a necessidade de utilizar esse recurso, deve-se ter bastante atenção ao manipular os índices do array.

. range

array range(int minimo, int maximo);

A função range cria um array cujos elementos são os inteiros pertencentes ao intervalo fornecido, inclusive. Se o valor do primeiro parâmetro for maior do que o do segundo, a função retorna false (valor vazio).

. shuffle

void shuffle(array &arr);

Esta função "embaralha" o array, ou seja, troca as posições dos elementos aleatoriamente e não retorna valor algum.

. sizeof

int sizeof(array arr);

Retorna um valor inteiro contendo o número de elementos de um array. Se for utilizada com uma variável cujo valor não é do tipo array, retorna 1. Se a variável não estiver setada ou for um array vazio, retorna 0.

Funções de "navegação"

Toda variável do tipo array possui um ponteiro interno indicando o próximo elemento a ser acessado no caso de não ser especificado um índice. As funções seguintes servem para modificar esse ponteiro, permitindo assim percorrer um array para verificar seu conteúdo (chaves e elementos).

. reset

mixed reset(array arr);

Seta o ponteiro interno para o primeiro elemento do array, e retorna o conteúdo desse elemento.

. end

mixed end(array arr);

Seta o ponteiro interno para o último elemento do array, e retorna o conteúdo desse elemento.

. next

mixed next(array arr);

Seta o ponteiro interno para o próximo elemento do array, e retorna o conteúdo desse elemento.

Obs.: Esta não é uma boa função para determinar se um elemento é o último do array, pois pode retornar false tanto no final do array como no caso de haver um elemento vazio.

. prev

mixed prev(array arr);

Seta o ponteiro interno para o elemento anterior do array, e retorna o conteúdo desse elemento. Funciona de maneira inversa a next.

. pos

mixed pos(array arr);

Retorna o conteúdo do elemento atual do array, indicado pelo ponteiro interno.

. key

mixed key(array arr);

Funciona de maneira bastante semelhante a pos, mas ao invés de retornar o elemento atual indicado pelo ponteiro interno do array, retorna seu índice.

. each

array each(array arr);

Retorna um array contendo o índice e o elemento atual indicao pelo ponteiro interno do array. o valor de retorno é um array de quatro elementos, cujos índices são 0, 1, "key" e "value". Os elementos de índices 0 e "key" armazenam o índice do valor atual, e os elementos de índices 1 e "value" contém o valor do elemento atual indicado pelo ponteiro.

Esta função pode ser utilizada para percorrer todos os elementos de um array e determinar se já foi encontrado o último elemento, pois no caso de haver um elemento vazio, a função não retornará o valor false. A função each só retorna false depois q o último elemento do array foi encontrado.

Exemplo:

/*função que percorre todos os elementos de um array e imprime seus índices e valores */
function imprime_array($arr) {
reset($arr);
while (list($chave,$valor) = each($arr))
echo "Chave: $chave. Valor: $valor";
}

Funções de ordenação

São funções que servem para arrumar os elementos de um array de acordo com determinados critérios. Estes critérios são: manutenção ou não da associação entre índices e elementos; ordenação por elementos ou por índices; função de comparação entre dois elementos.

. sort

void sort(array &arr);

A função mais simples de ordenação de arrays. Ordena os elementos de um array em ordem crescente, sem manter os relacionamentos com os índices.

. rsort

void rsort(array &arr);

Funciona de maneir ainversa à função sort. Ordena os elementos de um array em ordem decrescente, sem manter os relacionamentos com os índices.

. asort

void asort(array &arr);

Tem o funcionamento bastante semelhante à função sort. Ordena os elementos de um array em ordem crescente, porém mantém os relacionamentos com os índices.

. arsort

void arsort(array &arr);

Funciona de maneira inversa à função asort. Ordena os elementos de um array em ordem decrescente e mantém os relacionamentos dos elementos com os índices.

. ksort

void ksort(array &arr);

Função de ordenação baseada nos índices. Ordena os elementos de um array de acordo com seus índices, em ordem crescente, mantendo os relacionamentos.

. usort

void usort(array &arr, function compara);

Esta é uma função que utiliza outra função como parâmetro. Ordena os elementos de um array sem manter os relacionamentos com os índices, e utiliza para efeito de comparação uma função definida pelo usuário, que deve comparar dois elementos do array e retornar 0, 1 ou –1, de acordo com qualquer critério estabelecido pelo usuário.

. uasort

void uasort(array &arr, function compara);

Esta função também utiliza outra função como parâmetro. Ordena os elementos de um array e mantém os relacionamentos com os índices, utilizando para efeito de comparação uma função definida pelo usuário, que deve comparar dois elementos do array e retornar 0, 1 ou –1, de acordo com qualquer 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.




Enviado por xKuRt em 07/10/2006 às 15:35


Itens relacionados

Iniciando no PHP: Tipos de dados suportados pelo PHP
Iniciando no PHP: Classes e objetos
Iniciando no PHP: Variáveis
Iniciando no PHP: Criando os primeiros scripts no PHP
Iniciando no PHP: Constantes no PHP
Iniciando no PHP: Introdução ao PHP
Iniciando no PHP: Operadores no PHP
Iniciando no PHP: Funções para tratamento de strings
Iniciando no PHP: Estruturas de controle
Iniciando no PHP: Sintaxe básica do PHP

Listar todos itens relacionados

Avaliação

Esta publicação ainda não foi avaliada!


Avaliar:


A avaliação de publicações é restrita a membros cadastrados e logados no nosso site.



Comentários

Este artigo ainda não foi comentado ou o(s) comentário(s) que foi(ram) enviado(s) a ele ainda não foi(ram) publicado(s).


Envio de comentário:




  

Domingo, 23 de Novembro de 2014




Top 5 membros

Últimos membros online

Últimos membros cadastrados



Capa do livro
Laboratórios De Tecnologias Cisco Em Infraestrutura De Redes


Capa do livro
Metodologia de Pesquisa para Ciência da Computação


Capa do livro
Arquitetura de Redes de Computadores





Hostnet

IMD