O assunto de hoje é o sobre array
. Se já mexeu com alguma linguagem de programação, já deve ter visto ou trabalhado com um array
. Se é leigo no assunto, vamos estar vendo sobre o mesmo no PHP.
Os arrays
também podem ser identificados como tipos de dados compostos
. Os elementos e os dados de um array
, são conhecimos como os pares de chave e valor
. Vamos supor que temos um array
com 3 elementos, onde cada um contém uma letra do alfabeto. Exemplo:
1 | // Chave : 0 1 2 |
Na prática temos duas formas de criar um array e representar esse exemplo:
1 | // função array |
Não se preocupe com os exemplos práticos. Logo abaixo vamos estar vendo os tipos, funções de arrays
e as regras para entender melhor como eles funcionam.
Tipos de arrays
Uma coisa muito importante, é não esquecer que a chave numérica de um elemento de um array
, sempre começa em 0. E você pode acessar um elemento do array
, acessando com a chave entre colchetes. Exemplo:
1 | $array = array(0 => 'a', 1 => 'b', 2 => 'c'); |
Indexado / Associativo
Um array indexado
é conhecido como tal, qual suas chaves são do tipo numérico. Um array
de chaves nomeadas com strings
, é conhecido como array associativo
.
1 | // Array com chaves númericas(indexadas) |
1 | // Array com chaves nomeadas(associativas) |
Bidimensional / Multidimensional
Os arrays
podem ser de duas ou mais dimensões. Isso quer dizer, que podemos ter um array
, dentro de um array
. Não se tem um limite de dimensões para os arrays
, mas dependendo da quantidade, fica difícil manter o código de fácil entendimento. Exemplo:
1 | // Array tridimensional |
Dinâmicos
Já vimos que os arrays
podem ser indexados, associativos, bidimensionais e até multidimensionais. No PHP, eles também podem ser dinâmicos. Com isso, podemos adicionar, deletar e alterar os elementos com comandos e funções para esse uso.
1 | $array = array('name' => 'Ana', 'country' => 'Brasil'); |
Acima, temos um array
associativo com 3 elementos. O que acontece se adicionarmos um valor, sem informar a chave? Podemos conferir no exemplo abaixo.
1 | $array = array('name' => 'Ana', 'country' => 'Brasil', 'age' => 29); |
É, quando não informamos a chave, automaticamente a chave recebe o próximo índice numérico. Como é apenas um array
associativo e não tinha nenhuma chave numérica, o próximo índice é o 0
. Vamos ver como fica no próximo exemplo.
1 | $array = array(0 => 'Ana', 1 => 'Brasil', 'age' => 29); |
Para alterar o valor, é bem intuitivo. Basta informar a chave e lhe dar o novo valor.
1 | $array = array(0 => 'Ana', 1 => 'Brasil', 'age' => 29); |
Agora vamos brincar um pouco ao remover elementos com a função array_splice
. Na função, você informa 3 parâmetros, sendo o terceiro opcional.
1 | $array = array(0 => 'Ana', 1 => 'Brasil', 'age' => 29); |
1 | $array = array(0 => 'Ana', 1 => 'Brasil', 'age' => 29); |
Também podemos criar um novo array
, apenas com o resultado da função array_splice
, em uma variavel. Exemplo:
1 | $array = array(0 => 'Ana', 1 => 'São Paulo', 2 => 'Rio de Janeiro'); |
Uma outra função para remover elementos de um array, é a função unset
. Exemplo:
1 | $array = array(0 => 'Ana', 1 => 'São Paulo', 2 => 'Rio de Janeiro'); |
Foreach
Funciona apenas com arrays. Retorna um erro se for utilizado em uma variável de qualquer tipo diferente ou em variáveis não inicializadas. Pode ser usada de duas formas:
1 | foreach (array as $valor) { |
1 | $arr = array(1, 2, 3, 4); |
Algumas funções de Array
O array
é muito usado no PHP. Por esse motivo, tem muitas funções nativas da linguagem, que podemos utilizar.
sort
Essa função ordena um array. Os elementos serão ordenados do menor para o maior ao final da execução dessa função.
1 | // bool sort ( array &$array [, int $sort_flags ] ) |
rsort
Essa função ordena um array em ordem descrescente (do maior para o menor).
1 | // bool rsort ( array &$array [, int $sort_flags ] ) |
asort
Essa função ordena um array de forma que a correlação entre índices e valores é mantida. É usada principalmente para ordenar arrays associativos onde a ordem dos elementos é um fator importante.
1 | // bool asort ( array &$array [, int $sort_flags ] ) |
arsort
Esta função ordena um array de forma que a correlação entre índices e valores é mantida. É usada principalmente para ordenar arrays associativos onde a ordem dos elementos é um fator importante.
1 | // bool arsort ( array &$array [, int $sort_flags ] ) |
ksort
Ordena um array pelas chaves, mantendo a correlação entre as chaves e os valores. Essa função é bastante útil principalmente para arrays associativos.
1 | // int ksort ( array &$array [, int $sort_flags ] ) |
krsort
Ordena um array pelas chaves em ordem descrescente, mantendo a correlação entre entre as chaves e os valores. Essa função é bastante útil em arrays associativos.
1 | // bool krsort ( array &$array [, int $sort_flags ] ) |
usort
Essa função irá ordenar um array pelos valores usando uma função de classificação definida pelo usuário. Se o array precisar ser ordenado utilizando um critério não trivial, você deve usar essa função.
1 | // bool usort ( array &$array , string $cmp_function ) |
array_sum
array_sum()
retorna a soma dos valores de um array.
1 | // number array_sum ( array $array ) |
array_unique
Recebe o argumento array e retorna um novo array sem valores duplicados.
1 | // array array_unique ( array $array ) |
in_array
Procura no array, pelo valor informado.
1 | // bool in_array ( mixed $needle , array $haystack [, bool $strict ] ) |
array_search
Procura no array, pelo valor informado.
1 | // mixed array_search ( mixed $needle , array $haystack [, bool $strict ] ) |
array_rand
array_rand()
é bastante útil quando se quer conseguir aleatoriamente um ou mais elementos de um array.
1 | // mixed array_rand ( array $input [, int $num_req ] ) |
array_merge
Funde os elementos de dois ou mais arrays de forma que os elementos de um são colocados no final do array anterior. Retorna o array resultante da fusão.
1 | // array array_merge ( array $array1 [, array $array2 [, array $... ]] ) |
array_walk
Aplica uma função definida pelo usuário nomeada pelo argumento funcname
em cada elemento de array.
1 | // bool array_walk ( array &$arrary , string $funcname [, mixed $userdata ] ) |
count
Conta os elementos de um array.
1 | // int count ( mixed $var [, int $mode ] ) |
shuffle
Essa função mistura de forma aleatória os elementos de um array.
1 | // bool shuffle ( array &$array ) |
extract
Importar variáveis a partir de um array para a tabela de símbolos corrente. extract()
verifica cada chave e vê se ela tem um válido nome de variável. Também verifica por colisões com já existente variáveis na tabela de símbolo.
1 | // int extract ( array $var_array [, int $extract_type [, string $prefix ]] ) |
compact
Cria um array contendo variáveis e seus valores.
1 | // array compact ( mixed $varname [, mixed $... ] ) |
Referências
- PHP Documentation - Manual do PHP
Conclusão
Se pode brincar bastante com arrays em PHP. Nas linguagens de programação, com certeza irá se deparar com um array
. Sempre busque a melhor maneira de trabalhar com eles, pois ele pode ser usado da forma mais básica, até a mais complexa com multidimensões.