Os arrays, ou então chamada de “matrizes” é um conjunto de dados ordenados. Servem para armazenar e recuperar qualquer tipo de dados, incluindo números, valores booleanos, strings, objetos e até mesmo outros arrays. Eles permitem o uso de chaves integer ou string.
O próprio PHP possue diversas funções que você pode manipular os arrays, possibilitando você a fazer praticamente tudo com eles, e mais um pouco.
Vejamos a sintaxe de um array:
array( chave => valor , ... ) // chave pode ser tanto "string" ou um "integer" // valor pode ser qualquer coisa
Exemplo: Valores das chaves como string
<?php $dados = array('nome' => "Diego", 'sobrenome' => "Macêdo", 'funcao' => "Desenvolvedor Web", 'dia' => 20, 'mes' => 06); print_r($dados); ?>
Exemplo: Valores das chaves como integer
<?php $dados = array(1 => "Diego", 2 => "Macêdo", 3 => "Desenvolvedor Web", 4 => 20, 5 => 06); print_r($dados); ?>
Por padrão, os valores das chaves são integer, ou seja, caso você crie um array, insira seus valores e não defina suas chaves, o array irá utilizar números inteiros de forma auto-incrementável. Veja o exemplo abaixo:
<?php $numeros = array(1, 2, 3, 4, 5); print_r($numeros); ?>
Caso você queira inserir mais um valor dentro do array que já foi criado anteriormente, você pode utilizar da seguinte forma:
<?php $numeros = array(1, 2, 3, 4, 5); print_r($numeros); // Irá imprimir os valores 1, 2, 3, 4, 5 da matriz com os seus respectivos índices $numeros[] = 10; // Acrescenta o número 10 no array $numeros[] = 18; // Acrescenta o número 18 no array print_r($numeros); // Irá imprimir os valores 1, 2, 3, 4, 5, 10, 18 da matriz com os seus respectivos índices ?>
Agora que entendemos melhor sobre os índices, vou demonstrar como fazer algumas coisas com nossos arrays. Por exemplo, vamos criar um array e botar para exibir no documento um valor específico, chamando pelo seu índice.
Recuperando valor pelo seu índice
<?php $dados = array('nome' => "Diego", 'sobrenome' => "Macêdo", 'funcao' => "Desenvolvedor Web", 'dia' => 20, 'mes' => 06); echo "Nome: ".$dados['nome']." ".$dados['sobrenome']."<br />"; echo "Função: ".$dados['funcao']."<br />"; echo "Data: ".$dados['dia']."/".$dados['mes']."<br />"; ?>
Sempre utilize aspas simples para determinar qual é o índice que você está querendo retornar. Caso você não utilize, irá funcionar, mas está ERRADO.
Aí você deve estar se perguntando “Mas se está errado, por que ele está exibindo o valor do índice mesmo assim?”. A resposta para isso está neste exemplo abaixo:
<?php // Vamos ver todos os erros error_reporting(E_ALL); $arr = array('fruta' => 'maçã', 'legume' => 'cenoura'); // Correto print $arr['fruta']; // maçã print $arr['legume']; // cenoura // Errado. Isto funciona mas lança um erro PHP do // nível E_NOTICE porque é utilizada uma constante indefinida (fruta) // // Repare: Quando utiliza-se a constrante indefinida fruta, o PHP assume 'fruta' print $arr[fruta]; // maçã // Agora vamos definir uma constante para demonstrar o que pode acontecer. Nós // vamos assimilar o valor 'legume' para a constante de nome fruta define('fruta', 'legume'); // Observe a diferenca agora print $arr['fruit']; // maçã print $arr[fruit]; // cenoura // O exemplo seguinte é normal dentro de uma string. Constantes não são // observadas dentro de strings e por isso nenhum E-NOTICE não é lançado aqui print "Olá $arr[fruta]"; // Olá maçã // Com uma exceção: chaves envolvendo arrays dentro de strings // ativam a checagem de constantes, como em print "Olá {$arr[fruta]}"; // Hello cenoura print "Olá {$arr['fruta']}"; // Hello maçã // E isso não funciona, resultando em um erro de interpretação do tipo: // Parse error: parse error, expecting T_STRING' or T_VARIABLE' or T_NUM_STRING' // Isso se aplica ao uso de superglobais em strings print "Olá $arr['fruta']"; print "Olá $_GET['foo']"; // Nesse caso, use concatenacao print "Olá " . $arr['fruta']; // Olá maçã ?>
Funções de manipulação de Arrays no PHP
- array_change_key_case — Modifica todas as chaves em um array
- array_chunk — Divide um array em pedaços
- array_combine — Cria um array usando um array para chaves e outro para valores
- array_count_values — Conta as frequências de cada valor de um array
- array_diff_assoc — Computa a diferença entre arrays com checagem adicional de índice
- array_diff_key — Registra a diferença entre arrays usando chaves para comparação
- array_diff_uassoc — Computa a diferença entre arrays com checagem adicional de índice que é feita por uma função de callback fornecida pelo usuário
- array_diff_ukey — Computa a diferença de arrays usando uma função callback na comparação de chaves
- array_diff — Analisa as diferenças entre arrays
- array_fill_keys — Preenche um array com valores, especificando chaves
- array_fill — Preenche um array com valores
- array_filter — Filtra os elementos da array usando uma função de callback
- array_flip — Inverte as relações entre chaves e valores
- array_intersect_assoc — Computa a interseção de arrays com uma adicional verificação de índice
- array_intersect_key — Computa a interseção de array comparando pelas chaves
- array_intersect_uassoc — Computa a interseção de arrays com checagem de índice adicional, compara índices por uma função de callback
- array_intersect_ukey — Computa a interseção de arrays usando uma função de callback nas chaves para comparação
- array_intersect — Calcula a interseção entre arrays
- array_key_exists — Checa se uma chave ou índice existe em um array
- array_keys — Retorna todas as chaves de um array
- array_map — Aplica uma função em todos os elementos dos arrays dados
- array_merge_recursive — Funde dois ou mais arrays recursivamente
- array_merge — Funde um ou mais arrays
- array_multisort — Ordena múltiplos arrays ou arrays multidimensionais
- array_pad — Expande um array para um certo comprimento utilizando um determinado valor
- array_pop — Retira um elemento do final do array
- array_product — Calcula o produto dos valores de um array
- array_push — Adiciona um ou mais elementos no final de um array
- array_rand — Retorna um ou mais elementos aleatórios de um array
- array_reduce — Reduz um array para um único valor através de um processo iterativo utilizando uma função
- array_replace_recursive — Replaces elements from passed arrays into the first array recursively
- array_replace — Replaces elements from passed arrays into the first array
- array_reverse — Retorna um array com os elementos na ordem inversa
- array_search — Procura por um valor em um array e retorna sua chave correspondente caso seja encontrado
- array_shift — Retira o primeiro elemento de um array
- array_slice — Extrai uma parcela de um array
- array_splice — Remove uma parcela do array e substitui com outros elementos
- array_sum — Calcula a soma dos elementos de um array
- array_udiff_assoc — Computa a diferença entre arrays com checagem adicional de índice, compara dados por uma função de callback
- array_udiff_uassoc — Computa a diferença entre arrays com checagem adicional de índice, compara dados e índices por uma função de callback
- array_udiff — Computa a diferença de arrays usando uma função de callback para comparação dos dados
- array_uintersect_assoc — Computa a interseção de arrays com checagem adicional de índice, compara os dados utilizando uma função de callback
- array_uintersect_uassoc — Computa a interseção de arrays com checagem adicional de índice, compara os dados e os índices utilizando funções de callback
- array_uintersect — Computa a interseção de array, comparando dados com uma função callback
- array_unique — Remove o valores duplicados de um array
- array_unshift — Adiciona um ou mais elementos no início de um array
- array_values — Retorna todos os valores de um array
- array_walk_recursive — Aplica um função do usuário recursivamente para cada membro de um array
- array_walk — Aplica uma determinada funcão em cada elemento de um array
- array — Cria um array
- arsort — Ordena um array em ordem descrescente mantendo a associação entre índices e valores
- asort — Ordena um array mantendo a associação entre índices e valores
- compact — Cria um array contendo variáveis e seus valores
- count — Conta o número de elementos de uma variável, ou propriedades de um objeto
- current — Retorna o elemento corrente em um array
- each — Retorna o par chave/valor corrente de um array e avança o seu cursor
- end — Faz o ponteiro interno de um array apontar para o seu último elemento
- extract — Importa variáveis para a tabela de símbolos a partir de um array
- in_array — Checa se um valor existe em um array
- key — Retorna uma chave de um array
- krsort — Ordena um array pelas chaves em ordem descrescente
- ksort — Ordena um array pelas chaves
- list — Cria variáveis como se fossem arrays
- natcasesort — Ordena um array utilizando o algoritmo da “ordem natural” sem diferenciar maiúsculas e minúsculas
- natsort — Ordena um array utilizando o algoritmo da “ordem natural”
- next — Avança o ponteiro interno de um array
- pos — Sinônimo de current
- prev — Retrocede o ponteiro interno de um array
- range — Cria um array contendo uma faixa de elementos
- reset — Faz o ponteiro interno de um array apontar para o seu primeiro elemento
- rsort — Ordena um array em ordem descrescente
- shuffle — Mistura os elementos de um array
- sizeof — Sinônimo de count
- sort — Ordena um array
- uasort — Ordena um array utilizando uma função de comparação definida pelo usuário e mantendo as associações entre chaves e valores
- uksort — Ordena um array pelas chaves utilizando uma função de comparação definida pelo usuário.
- usort — Ordena um array pelos valores utilizando uma função de comparação definida pelo usuário
Espero que tenham gostado e façam um bom uso do que você aprendeu aqui.
Qualquer dúvida, postem um comentário ou então entre em contato comigo através da página de “Contato”. Grande abraço e bons estudos!