Linguagem Técnica Orientada – Método (PHP)___________________________________Capítulo 3 CAPITULO 3 VARIÁVEIS DO TIPO ARRAY Um array é um tipo de variável que armazena vários valores de uma só vez, mudando apenas o seu índice (ou chave associativa). É através deste índice que identificamos os valores armazenados. Este índice é gerado entre cochetes ([ ]). Ao criarmos uma array, podemos facilmente simular o armazenamento de dados, como em um banco de dados. E podemos levar em consideração que, quando retornamos dados de uma banco de dados, estas informações são retornadas podem ser convertidas em array. Podemos criá-las de inúmeras formas diferentes, dependendo do nosso objetivo. Nós vamos conhecer dois tipos de formato de arrays: as unidimenssionais e as multidimenssionais. Podemos associar a ideia de uma array com a criação de vetores e matrizes matemáticas. ARRAYS UNIDIMENSIONAIS São tipos de arrays que podem ser visualizadas em forma de lista. São arrays de formação mais simplificadas do que as multidimenssionais. A função array() é a forma mais comum de armazenamento de dados em variáveis do tipo array. Exemplo 1: array1.php <?php $produto = array(“Batatas”, “Laranjas”, “Maçãs”, “Pêras”); echo “<pre>”; var_dump($produto); echo “</pre>”; ?> Arrays 1 Linguagem Técnica Orientada – Método (PHP)___________________________________Capítulo 3 $produto é a variável. $produto está recebendo vários elementos, sendo que cada elemento será identificado através do índice (ou chave associativa), que vem entre os cochetes. O var_dump() e o print_r() são funções internas do PHP, que tem como objetivo visualizarmos o conteúdo de uma array, como os valores armazenados e a que índice pertencem. Neste exemplo, também estamos utilizando a tag HTML <pre>, que tem como objetivo organizar a array, de forma linear. Teste o programa sem a tag <pre> e com ela, e veja a diferença. Exemplo 2 : array2.php <?php // Armazenando dados na variável $produto $produto[0]="Batatas"; $produto[1]="Laranjas"; $produto[2]="Maçãs"; $produto[3]="Pêras"; echo “Mostrando o conteúdo de uma array <BR>”; echo “<pre>”; var_dump($produto); echo “Exibindo o conteúdo de uma array utilizando índices <BR>”; echo $produto[0].'<br>'; // IMPRIMINDO NA TELA Batatas echo $produto[2].'<br>'; // IMPRIMINDO NA TELA Maçãs ?> No exemplo acima, estamos “alimentando” os índices. Mas vamos fazer diferente agora. Vamos criar uma nova variável do tipo array e retirar todos os índices. <?php Arrays 2 Linguagem Técnica Orientada – Método (PHP)___________________________________Capítulo 3 $produto2[]="Batatas"; $produto2[]="Laranjas"; $produto2[]="Maçãs"; $produto2[]="Pêras"; echo “Exibindo o conteúdo de uma array utilizando índices <BR>”; echo $produto2[0].'<br>'; // IMPRIMINDO NA TELA Batatas echo $produto2[2].'<br>'; // IMPRIMINDO NA TELA Maçãs ?> No caso de não colocarmos o índice, o mesmo é incrementado automaticamente a partir do número zero. Veja que ambas as formas apresentam o mesmo resultado. ARRAY MULTIDIMENSSIONAL Quando for necessário armazenar dados ainda mais complexos, podem-se utilizar os arrays multidimensionais, totalmente suportados pelo PHP. Através de arrays multidimenssionais, poderemos armazenar diversas informações em linhas e colunas. Uma array multidimenssional lembra uma matriz ou uma tabela e podemos criá-las de diversas maneiras. Veremos algumas formas de criarmos estas arrays multidimenssionais, armazenando uma informação utilizando mais de um índice. Neste exemplo, cada informação abaixo deverá ser armanzenada em uma estrutura array. E logo em seguida, cada informação ser identificada de forma isolada. NOME Walace Chloe Arrays CIDADE IDADE São Paulo 32 Tóqui 21 3 Linguagem Técnica Orientada – Método (PHP)___________________________________Capítulo 3 Exemplo 3: array3.php <?php $dados[0]['nome'] = 'Walace'; $dados[0]['cidade'] = 'São Paulo'; $dados[0]['idade'] = 32; $dados[1]['nome'] = 'Chloe'; $dados[1]['cidade'] = 'Japão'; $dados[1]['idade'] = 21; echo $dados[0]['nome'].'<br>'; echo $dados[0]['cidade'].'<br>'; echo $dados[0]['idade'].'<br>'; ?> No exemplo abaixo, temos uma tabela especificando as linhas e as colunas de uma possível array. Sempre iniciamos a contagem de linhas de uma array a partir do 0 (zero). Já as colunas podem ser identificadas por chaves associativas numéricas ou alfanuméricas. Outro Exemplo. Vamos imaginar um cadastro de produtos, onde teremos o código e o nome do produto de vários produtos. Abaixo temos uma representação em formato de tabela. Linha / Coluna Arrays 0 1 Código do produto Nome do produto 0 001 Arroz (kg) 1 002 Feijão (kg) 2 003 Farinha (kg) 4 Linguagem Técnica Orientada – Método (PHP)___________________________________Capítulo 3 3 004 Açúcar (kg) 4 005 Sal (kg) Agora, vamos armazenar os dados acima em uma variável do tipo array chamada $produtos, cujos valores são o código do produto e o nome do produto. Vamos exibir na tela o código e o nome dos produtos feijão e açúcar através do comando echo ou print, de acordo com a posição (linha e coluna) que estão ocupando na array. Neste caso, criaremos uma grande array, com outra pequenas arrays dentro dela. Ou seja, várias arrays dentro de outra array. A array mais externa, armazenará as linhas. Já as arrays internas, irão armazenar as colunas. EXEMPLO PRODUTOS: produtos.php <?php $produtos = array(); $produtos[] = array(0=>'001',1=>'Arroz(kg)'); $produtos[] = array(0=>'002',1=>'Feijão(kg)'); $produtos[] = array(0=>'003',1=>'Farinha(kg)'); $produtos[] = array(0=>'004',1=>'Açúcar(kg)'); $produtos[] = array(0=>'005',1=>'Sal(kg)'); echo $produtos[1][0].' - '.$produtos[1][1].'<br>'; echo $produtos[3][0].' - '.$produtos[3][1]; ?> Cada variável $produtos[] está armazenando uma linha. Arroz está sendo armazenado na linha 0, Feijão está sendo armazenado na linha 1 e assim por diante. Cada linha de produto possui um código e o nome do produto. O código está armazenado na coluna 0 e o nome do produto está Arrays 5 Linguagem Técnica Orientada – Método (PHP)___________________________________Capítulo 3 armazenado na coluna 1. Estas chaves são do tipo numérico, mas estas chaves podem ser do tipo string. Por exemplo, ao invés de coluna 0, poderá ser substituido por 'codigo'. Trecho: $produtos[] = array('codigo'=>'001','produto'=>'Arroz(kg)'); O exemplo acima, também poderá ser feito da seguinte maneira: <?php $produtos = array( array(0=>'001',1=>'Arroz(kg)'), array(0=>'002',1=>'Feijão(kg)'), array(0=>'003',1=>'Farinha(kg)'), array(0=>'004',1=>'Açúcar(kg)'), array(0=>'005',1=>'Sal(kg)'), ); echo $produtos[1][0].' - '.$produtos[1][1].'<br>'; echo $produtos[3][0].' - '.$produtos[3][1]; ?> Leia mais em: https://secure.php.net/manual/pt_BR/language.types.array.php “Um array no PHP é atualmente um mapa ordenado. Um mapa é um tipo que relaciona valores para chaves. Este tipo é otimizado de várias maneiras, então você pode usá-lo como um array real, ou uma lista (vetor), hashtable (que é uma implementação de mapa), dicionário, coleção, pilha, fila e provavelmente mais. Como você pode ter outro array PHP como um valor, você pode facilmente simular árvores”. Fonte: http://www.php.net/manual/pt_BR/language.types.array.php Arrays 6 Linguagem Técnica Orientada – Método (PHP)___________________________________Capítulo 3 EXERCÍCIO 1) Crie uma variável do tipo array chamada cores. Armazene em cada índice as seguintes cores: azul, amarelo, branco, rosa, azul e verde. Exiba na tela utilizando print ou echo as cores branco e verde armazenadas nesta variável, pulando uma linha para cada cor. 2) Escreva um script em PHP que armazene os dados da tabela abaixo em uma variável do tipo array. Crie chaves associativas do tipo string. Exiba o conteúdo de todas linhas e colunas desta array. A array refere-se a um cadastro de alunos, onde temos armazenados os seguintes campos: Linha/Chave CH AVE: 'NOME' Chave: 'matricula' 0 201300001 Rosane Casas 1 201400001 Camille de Paula 2 201300003 Edson Silva 3 201400005 Marcos Prestes Próximo Capítulo: FORMULÁRIOS, VARIÁVEIS PRÉ DEFINIDAS Arrays 7