PHP - Parte 3 - Trabalhando com Arrays
Autor: Fabio | Publicado: 2011-03-03T02:55:00-08:00

O array funciona como uma estrutura com caxinhas onde você pode colocar informações separadas e pode acessar essas informações acessando diretamente a caixinha por um numero. Como se fosse uma lista de informações.
Imagine um trem de carga com 10 vagões, o trem seria o array e os vagões de carga as posições onde podemos colocar algum conteúdo.
Se numerarmos os 10 vagões de 1 a 10 e quiséssemos pegar algum conteúdo do vagão 5, poderíamos ir direto no vagão 5 e pegar, pode reordenar os vagões ou simplesmente olhar o que tem dentro... e basicamente, é assim que um array funciona..

Agora vamos parar com as historinhas e vamos contruir uns arrays para ver como funciona o armazenamento de informação neles...

Vamos supor que tivéssemos uma empresa e precisássemos guardar uma lista de clientes; construiríamos isso da seguinte forma:

$Clientes = array("Anastacio","Ariovaldo","Cleonilda","Luprecio");

Como a gente lê isto?
A gente lê que o array chamado $Clientes tem o&nbsp;Anastacio, Ariovaldo, Cleonilda e Luprecio armazenados como clientes. E cada um quardado em uma posição desta "agenda de clientes".
Anastacio na posição 0, Ariovaldo na posição 1, Cleonilda na posição 2 e Luprecio na posição 3.

Existem duas formas de imprimir esse array.

A mais trabalhosa, que é com o echo(NomeDoArray[PosiçãoDaInformação]) ou com o Print_r(NomeDoArray) que é a menos trabalhosa caso se queira imprimir todo o conteúdo na tela.
O echo é mais recomendado no caso de se querer imprimir apenas uma posição manualmente. Mais para frente veremos estruturas condicionais que ajudam a imprimir só o que se quer.

Vamos utilizar o print_r(); para este exemplo como se segue:
&nbsp;print_r($Clientes);

O resultado deve ser:
Array (     [0] =&gt; Anastacio     [1] =&gt; Ariovaldo     [2] =&gt; Cleonilda     [3] =&gt; Luprecio )


Outra forma de se criar um array é escrevendo direto na posição de memória da variável como no exemplo abaixo:


&nbsp;&nbsp; &nbsp; &nbsp;$Animais[0] = "Cachorro";
&nbsp;&nbsp; &nbsp; &nbsp;$Animais[1] = "Gato";
&nbsp;&nbsp; &nbsp; &nbsp;$Animais[2] = "Passaros";
&nbsp;&nbsp; &nbsp; &nbsp;$Animais[3] = "Peixes";


Ao fazer um print_r(); do array Animais, você deverá receber um resultado parecido com o exemplo de $Clientes acima.

Mais uma forma de se criar um array é apontar o conteúdo para a posição relativa interna deste array. É muito parecido com a primeira forma de criar array que escrevi para o exemplo de $Clientes:


  &nbsp;$Cores = array(
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0 =&gt; "Marrom",
   &nbsp;1 =&gt; "Preto",
   &nbsp;2 =&gt; "Verde",
   &nbsp;3 =&gt; "Amarelo"
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; );

E temos também, arrays multidimensionais.
Uma matriz é um array bidimensional, por exemplo, uma matriz 4X4 teria:
[linha 0, coluna 0][linha 0, coluna 1][linha 0, coluna 2][linha 0, coluna 3]
[linha 1, coluna 0][linha 1, coluna 1][linha 1, coluna 2][linha 1, coluna 3]
[linha 2, coluna 0][linha 2, coluna 1][linha 2, coluna 2][linha 2, coluna 3]
[linha 3, coluna 0][linha 3, coluna 1][linha 3, coluna 2][linha 3, coluna 3]

E como montaríamos isto?
Vamos construir uma matriz onde na primeira linha teremos.. Nome, Idade, Sexo, Animal e nas linhas subsequentes preencheremos de acordo com a primeira linha.


  &nbsp;$Matriz = array(
      &nbsp;0 =&gt; array("Nome","Idade","Sexo","Animal"),
      &nbsp;1 =&gt; array("Fabio","31","Masculino","Cachorro"),
      &nbsp;2 =&gt; array("Claudia","20","Feminino","Passaro"),
      &nbsp;3 =&gt; array("Bruno","3","Masculino","Peixe")      &nbsp;
      &nbsp;);

Ao imprimir a $Matriz com o print_r(); teremos o seguinte resultado que vou separar em linhas para ficar mais fácil de compreender:

Array (&nbsp;
[0] =&gt; Array         (             [0] =&gt; Nome             [1] =&gt; Idade             [2] =&gt; Sexo             [3] =&gt; Animal         )&nbsp;
[1] =&gt; Array         (             [0] =&gt; Fabio             [1] =&gt; 31             [2] =&gt; Masculino             [3] =&gt; Cachorro         )&nbsp;
[2] =&gt; Array         (             [0] =&gt; Claudia             [1] =&gt; 20             [2] =&gt; Feminino             [3] =&gt; Passaro         )&nbsp;
[3] =&gt; Array         (             [0] =&gt; Bruno             [1] =&gt; 3             [2] =&gt; Masculino             [3] =&gt; Peixe         )  )

Lê-se:
[Linha 0] =&gt; Colunas( [0][1][2][3])
[Linha 1] =&gt; Colunas( [0][1][2][3])
[Linha 2] =&gt; Colunas( [0][1][2][3])
[Linha 3] =&gt; Colunas( [0][1][2][3])

E se quiséssemos imprimir apenas o Animal que o Bruno tem? como faríamos?

Só dar um echo() na posição referente à informação:

echo($Matriz[3][3]);


Segue abaixo o código que construí para mostrar todos os exemplos acima funcionando.
Abra um arquivo em branco, e cole o conteúdo abaixo em vermelho e salve com a extensão .php para efetuar os testes.

###############################

&lt;html&gt;
&nbsp;&nbsp;&lt;title&gt; Exemplo 3 - Trabalhando com arrays &lt;/title&gt;


&nbsp;&nbsp;&lt;body&gt;
&nbsp;&nbsp; &nbsp;&lt;?php
&nbsp;&nbsp; &nbsp; &nbsp;//Antes de criar o array, precisamos criar uma variável que receberá esse array
&nbsp;&nbsp; &nbsp; &nbsp;//Vamos criar um array de clientes com 4 clientes
&nbsp;&nbsp; &nbsp; &nbsp;//A primeira posição do array é a posição 0 (zero) e as próximas são incrementadas de um em um.
&nbsp;&nbsp; &nbsp; &nbsp;$Clientes = array("Anastacio","Ariovaldo","Cleonilda","Luprecio");
&nbsp;&nbsp; &nbsp; &nbsp;//Pronto, nosso array foi criado, agora vamos acessar o conteúdo do nosso array.


&nbsp;&nbsp; &nbsp; &nbsp;//para imprimir o array na tela precisaremos usar o print_r, pois se usarmos o echo na variável só mostrará a palavra "array" como retorno
&nbsp;&nbsp; &nbsp; &nbsp;print_r($Clientes);
&nbsp;&nbsp; &nbsp; &nbsp;//Seu array será impresso na tela mostrando a posição do dado e o conteúdo da seguinte forma:
&nbsp;&nbsp; &nbsp; &nbsp;//Array ( [0] =&gt; Anastacio [1] =&gt; Ariovaldo [2] =&gt; Cleonilda [3] =&gt; Luprecio )
&nbsp;&nbsp; &nbsp; &nbsp;echo "&lt;br&gt;"; // pulando linha
&nbsp;&nbsp; &nbsp; &nbsp;echo "&lt;br&gt;"; // pulando linha
&nbsp;&nbsp; &nbsp; &nbsp;echo "&lt;br&gt;"; // pulando linha
&nbsp;&nbsp; &nbsp; &nbsp;//se quisermos imprimir apenas um item de uma determinada posição, deveremos utilizar o echo
&nbsp;&nbsp; &nbsp; &nbsp;echo "Informacao da posicao 2 do nosso array: ", $Clientes[2]; //Ja que array começa na posição zero, Cleonilda deverá aparecer na tela
&nbsp;&nbsp; &nbsp; &nbsp;echo "&lt;br&gt;"; // pulando linha
&nbsp;&nbsp; &nbsp; &nbsp;echo "&lt;br&gt;"; // pulando linha
&nbsp;&nbsp; &nbsp; &nbsp;echo "&lt;br&gt;"; // pulando linha
  &nbsp;
  &nbsp;//Outra forma de criar arrays
&nbsp;&nbsp; &nbsp; &nbsp;//Criando arrays escrevendo direto na posição da variável
&nbsp;&nbsp; &nbsp; &nbsp;$Animais[0] = "Cachorro";
&nbsp;&nbsp; &nbsp; &nbsp;$Animais[1] = "Gato";
&nbsp;&nbsp; &nbsp; &nbsp;$Animais[2] = "Passaros";
&nbsp;&nbsp; &nbsp; &nbsp;$Animais[3] = "Peixes";


&nbsp;&nbsp; &nbsp; &nbsp;print_r($Animais); //Imprimindo o Array "Animais" com as posições e itens
  &nbsp;
  &nbsp;
&nbsp;&nbsp; &nbsp; &nbsp;echo "&lt;br&gt;"; // pulando linha
&nbsp;&nbsp; &nbsp; &nbsp;echo "&lt;br&gt;"; // pulando linha
&nbsp;&nbsp; &nbsp; &nbsp;echo "&lt;br&gt;"; // pulando linha  &nbsp;


  &nbsp;//Outra forma de criar arrays
  &nbsp;//Criando arrays apontando a informação para a posição do array
  &nbsp;//Note que os dados são separados por vírgulas
  &nbsp;$Cores = array(
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0 =&gt; "Marrom",
      1 =&gt; "Preto",
      2 =&gt; "Verde",
      3 =&gt; "Amarelo"
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; );
  &nbsp;//Imprimindo o array Cores
  &nbsp;print_r($Cores);


&nbsp;&nbsp; &nbsp; &nbsp;echo "&lt;br&gt;"; // pulando linha
&nbsp;&nbsp; &nbsp; &nbsp;echo "&lt;br&gt;"; // pulando linha
&nbsp;&nbsp; &nbsp; &nbsp;echo "&lt;br&gt;"; // pulando linha 


  &nbsp;//Arrays Multidimensionais
  &nbsp;//Vejo isso como uma matriz de dados, vamos construir para entender melhor
  &nbsp;//Vamos construir uma matriz onde na primeira linha teremos.. Nome, Idade, Sexo, Animal e nas linhas subsequentes preencheremos de acordo com a primeira linha.
  &nbsp;$Matriz = array(
      &nbsp;0 =&gt; array("Nome","Idade","Sexo","Animal"),
      &nbsp;1 =&gt; array("Fabio","31","Masculino","Cachorro"),
      &nbsp;2 =&gt; array("Claudia","20","Feminino","Passaro"),
      &nbsp;3 =&gt; array("Bruno","3","Masculino","Peixe")      &nbsp;
      &nbsp;);
  &nbsp;print_r($Matriz); //Imprimindo a Matriz
  &nbsp;
&nbsp;&nbsp; &nbsp; &nbsp;echo "&lt;br&gt;"; // pulando linha 
&nbsp;&nbsp; &nbsp; &nbsp;echo "&lt;br&gt;"; // pulando linha 
  &nbsp;echo "&lt;br&gt;"; // pulando linha 
  &nbsp;
  &nbsp;
  &nbsp;//Se eu quisesse imprimir apenas o animal que o Bruno tem, &nbsp;e sabemos que é a linha 4, coluna 4, poderíamos imprimir com a função echo()
  &nbsp;echo"O Bruno tem um ",$Matriz[3][3];
  &nbsp;echo" como animal de estimacao";
  &nbsp;
  &nbsp;?&gt;
&nbsp;&nbsp;&lt;/body&gt;
&lt;/html&gt;&nbsp;


###############################

Espero que tenham gostado de mais esse post!! Até o próximo...