Arrays em PHP

Arrays, também conhecidos como vetores, são conjuntos de elementos formados por pares de chaves e valores, ou seja, para acessar o valor de um elemento devemos informar a chave relacionada.

O Array possui infinitas utilidades mas normalmente é usado para manipular grandes quantidades de informações, como leitura de informações de tabelas em Bancos de Dados por exemplo.


Para criar um Array em PHP, podemos utilizar a função array. Basta passar a lista de valores como parâmetros (separados por vírgulas) conforme no exemplo abaixo:
<?php
$frutas = array("Laranja", "Maça", "Melão", "Pêra", "Uva");
echo $frutas[1];
?>
Ao executarmos o programa acima, visualizamos apenas a palavra Maça.

Repare que, na linha 2, criamos uma variável com o nome $frutas e atribuímos a ela um valor do Tipo de Dados Array. Repare que passamos cinco valores à função array separados por aspas (pois são cinco Strings).

Como não informamos as chaves, o próprio Interpretador PHP define que o primeiro elemento possui a chave 0, o segundo a chave 1, o terceiro a chave 2, e assim por diante.

Para acessar um elemento do Array, basta colocar o nome da variável (no caso $frutas) e, entre colchetes, a chave.

Por isso, ao executarmos o programa acima, visualizamos a palavra Maça (chave 1) e não Laranja (chave 0) pois na terceira linha, acessamos o elemento de chave 1.

Podemos também criar Arrays sem utilizar utilizar a função array, basta colocar colchetes imediatamente após o nome da variável. O código abaixo tem o mesmo resultado do exemplo anterior:

<?php
$frutas[] = "Laranja";
$frutas[] = "Maça";
$frutas[] = "Melão";
$frutas[] = "Pêra";
$frutas[] = "Uva";

echo $frutas[1];
?>

Ao executar o código acima, também visualizamos a palavra Maça pois, como já foi dito, ele funciona igual ao exemplo anterior.

Repare que, como também não definimos as chaves, ele mais uma vez considera que o primeiro elemento possui a chave 0, o segundo possui a chave 1, e assim por diante.

Definindo as Chaves dos elementos do Array

Podemos definir nossas próprias chaves para acessar cada elemento de um array. Normalmente, as chaves são do Tipo Inteiro, mas você pode definir chaves do tipo String. Basta lembrar de colocar entre aspas.

Os Arrays que possuem chaves do Tipo String são chamados de Arrays Associativos pois a deixam o código mais intuitivo (com associação mais visível).

Veja o exemplo abaixo utilizando a função array:

<?php
$times = array(
"bot" => "Botafogo",
"fla" => "Flamengo",
"flu" => "Fluminense",
"vas" =>"Vasco da Gama"
);

echo $times["fla"];
?>
Ao executar o código acima, deve aparecer a palavra Flamengo.

Repare que, para cada elemento nós definimos uma chave e um valor separados por =>. É importante observar também que colocamos vírgulas para separar cada elemento (chave => valor).

O mesmo resultado poderia ser obtido sem utilizar a função array, conforme abaixo:

<?php
$times["bot"] = "Botafogo";
$times["fla"] = "Flamengo";
$times["flu"] = "Fluminense";
$times["vas"] = "Vasco da Gama";

echo $times["fla"];
?>
Ao executar o script acima, o retorno também é a palavra Flamengo.

Arrays Multidimensionais (Matrizes)

Em alguns momentos, precisamos colocar Arrays dentro de Arrays, ou seja, criamos um Array que contém um ou mais elementos com valor do Tipo Array. Chamamos esses de Arrays Bidimensionais (ou Matrizes).

Vejamos um exemplo simples utilizando a função array:
<?php
$times = array(
"mg" => array(
"atl" => "Atlético",
"cru" => "Cruzeiro"
),
"rj" => array(
"bot" => "Botafogo",
"fla" => "Flamengo",
"flu" => "Fluminense",
"vas" => "Vasco da Gama"
),
"rs" => array(
"gre" => "Grêmio",
"int" => "Internacional"
),
"sp" => array(
"cor" => "Corinthians",
"pal" => "Palmeiras",
"san" => "Santos",
"spa" => "São Paulo"
),
);

echo $times["rj"]["fla"];
?>
O retorno será novamente a palavra Flamengo.

Observe (na penúltima linha) que dessa forma precisamos informar as duas chave para acessar o valor, a chave do Array Externo e a chave do Array Interno.

O mesmo resultado seria obtido com o código abaixo:
<?php
$times["mg"]["atl"] = "Atlético";
$times["mg"]["cru"] = "Cruzeiro";
$times["rj"]["bot"] = "Botafogo";
$times["rj"]["fla"] = "Flamengo";
$times["rj"]["flu"] = "Fluminense";
$times["rj"]["vas"] = "Vasco da Gama";
$times["rs"]["gre"] = "Grêmio";
$times["rs"]["int"] = "Internacional";
$times["sp"]["cor"] = "Corinthians";
$times["sp"]["pal"] = "Palmeiras";
$times["sp"]["san"] = "Santos";
$times["sp"]["spa"] = "São Paulo";

echo $times["rj"]["fla"];

?>

Quantidade de Elementos no Array

É muito fácil descobrir a quantidade de elementos em um Array, basta utilizar a função count do PHP. Veja um exemplo:
<?php
$frutas = array("Laranja", "Maça", "Melão", "Pêra", "Uva");
$quantidade = count($frutas);
echo $quantidade;
?>
O código acima irá imprimir na tela o número 5, já que o Array possui cinco elementos.

Leia mais:

9 comentários:

  1. Esse é meu garoto. Continua com aquela excelente didática. Ótimo post! Abraços!

    ResponderExcluir
  2. Muito Esclarecedor, ótimos exemplos!

    ResponderExcluir
  3. Parabéns, vc ensina MUITO bem... Ja havia visto outras aulas de array, mas esta não tem comparação, muito boa,.obrigado.

    ResponderExcluir
  4. Pessoal boa tarde alguem sabe como eu faço para inserir valores por formulario para dentro de um array em php?

    ResponderExcluir
  5. Coloca o nome do campo terminando com []. Exemplo:

    input type="text" name="email[]"
    input type="text" name="email[]"
    input type="text" name="email[]"

    No PHP, ao receber:
    $emails = $_POST['email'];

    A variável $emails é um array contendo todos os e-mails digitados nas caixas.

    Para ver, faz assim:
    var_dump($emails);


    Espero ter ajudado! Abraço!

    ResponderExcluir
  6. Muito bom. Gostei. Eu gostaria de ver exemplos com banco de dados. Array mais BD. Pegando valos de uma consulta colocando no array fazendo operações e imprimindo resultados. Obrigado. Ricardo

    ResponderExcluir
  7. Gostei de sua forma de ensinar. Quero fazer uma rotina para analisar resultados da QUINA.
    O Banco de Dados é: concursos e os campos são: concurso, data sorteio e as 5 dezenas sorteadas.
    Quero aprender a manipular a matriz com os resultados de um periodo, comparações entre numeros se são repetidos, quantidade de vezes que tal numero aparaceu nesse periodo, etc...
    Acho que é uma programação bem complicada. Procuro pela internet para aprender sobre matrizes e poucos falam sobre isso.
    Preciso de uma direção de onde procurar as coisas. Grato, Flavio.

    ResponderExcluir
    Respostas
    1. Cara, tenho um exemplo aqui de mega sena que é bem parecido com o que você esta querendo. Com poucos ajustes fica igual. Tudo comentado. Me passa seu email que eu te mando. Abraço!

      Excluir
  8. Eu tive essa dúvida e o professor não soube me explicar. O teu artigo me ajudou a entender como funciona o array! Obrigada!

    ResponderExcluir

O que você achou do post? Faça um comentário.

Aprenda a receber dados de Formulário com PHP

Existem três arrays associativos que podemos usar para receber dados de Formulários HTML em PHP. São eles: $_GET , $_POST e $_REQUEST . O...