Curso de PHP: Array (matrizes) - Parte 1


Autor/fonte: Edgar da Silva
E-mail/Url: http://www.manjaphp.com.br/content/curso-de-php-array-matrizes-parte-1
Tags: [ curso de php ]



Digg del.icio.us

Os arrays, também conhecidos como matrizes, são posições de memória sequencialmente armazenadas.

Acessados por um único identificador (nome do array) cada posição pode ser acessada por um indicador, numérico ou texto. Como dito, arrays são posições de memória, ou seja, uma variável de memória. Portanto um array nada mais é que um tipo de variável. O array sempre deve ser inicializado, e para fazer isso basta utilizar a função array.

<?php
$meuArray = array();
?>

O código acima indica ao PHP que a variável acima é um array. Vejamos pra que usar um array. Veja o seguinte código:

<?php
$nota1 = 10;
$nota2 = 5;
$nota3 = 7;
$nota4 = 7;
$nota5 = 3;
 
echo 'A nota 1 é' . $nota1 . '<br>';
echo 'A nota 2 é' . $nota2 . '<br>';
echo 'A nota 3 é' . $nota3 . '<br>';
echo 'A nota 4 é' . $nota4 . '<br>';
echo 'A nota 5 é' . $nota5 . '<br>';
?>

O código acima armazena os valores de cinco notas eapresenta depois. Para fazer isso com array poderemos fazer da seguinte forma:

<?php
$nota = array();
$nota[1] = 10;
$nota[2] = 5;
$nota[3] = 7;
$nota[4] = 7;
$nota[5] = 3;
   
echo 'A nota 1 é' . $nota[1] . '<br>';
echo 'A nota 2 é' . $nota[2] . '<br>';
echo 'A nota 3 é' . $nota[3] . '<br>';
echo 'A nota 4 é' . $nota[4] . '<br>';
echo 'A nota 5 é' . $nota[5] . '<br>';
?>

Se você testar o código acima verá que a execução será o mesmo do anterior, porém, agora temos uma única variáel $nota que possui 5 posições, ou seja, um array de 5 posições.

Quando fazemos $nota = array() criamos a variável com 5 posições. Depois preenchemos cada posição com um número entre colchetes logo após o nome da variável. Esse número é o índice do array. O índice identifica a posição do array que está o valor que nós queremos acessar. Para acessar o valor basta informar o nome da variável seguido de colchetes e com o índice desejado dentro dos colchetes.

Qual a vantagem de usar um array ao invés de variáveis separadas? Veja que no primeiro código precisamos de 5 instruções echo para mostrar todas as notas. No segundo, também utilizamos 5 instruções, porém, o ideal é diminuir essas instruções. Veja como:

<?php
$nota = array();
$nota[1] = 10;
$nota[2] = 5;
$nota[3] = 7;
$nota[4] = 7;
$nota[5] = 3;

for ( $indice = 1 ; $indice <= 5 ; $indice++ ) {
	echo 'A nota ' . $indice . ' é' . $nota[$indice] . '<br>';
}
?>

Notou a diferença? Utilizamos um for para iniciar o nosso $indice com 1 e somar com 1 a cada volta do laço enquanto o $indice <= 5. Também colocamos o $indice entre colchetes. Isso diz ao PHP que o índice da variável $notas será indicada na variável $indice. Portanto, para você enteder, na primeira volta a variável $indice vale 1, imprimindo o indice 1 da $nota ($nota[1]). Na segunda volta a $variavel $indice valerá 2, que seria o mesmo que $nota[2], e assim por diante. Dessa forma foi possível economizar várias linhas não é mesmo?

Índice string

O índice de um array pode ser uma string também. Veja:

<?php
$pessoa = array();
$pessoa['nome'] = 'Edgar Ferreira da Silva' ;
$pessoa['idade'] = 23;
$pessoa['sexo'] = 'masculino';
   
echo 'Meu nome é ' . $pessoa['nome'] . '. Sou do sexo ' . $pessoa['sexo'] . ' e tenho ' . $pessoa['idade'] . ' anos.';
?>

O código acima é uma array normal, a única diferença é que seu índice é formado por strings. A única regra é que o índice seja uma string ( que esteja dentro de aspas, simples ou dupla, ou que seja uma variável que contenha uma string ). Digo isso porque tem muitas pessoas que utilizam os indices como string, mas sem utilizar aspas. Funcionar até funciona, mas apenas em alguns casos. Portanto, sempre utilize aspas.

Inicializando

Outra forma de guardar os valores no array é passando o conteúdo na inicialização. Veja:

<?php
$nota = array( 10, 5, 7, 7, 3 );
for ( $indice = 0 ; $indice < 5 ; $indice++ ) {
	echo 'A nota ' . $indice . ' é' . $nota[$indice] . '<br>';
}
?>

O código acima apresenta um resultado parecido como os primeiros códigos apresentados no começo. O que mudou?

A primeira grande mudança é que ele ficou mais enxuto no armazenamento dos valores na variável, pois, estamos passando os valores na criação da variável com a função array().

Outra mudança que percebemos é que a nota não começa mais do 1 e sim do 0. O que ocasionou uma mudança na inicialização e no teste do for também. Porquê?

Quando armazenamos um valor em um array e não informamos o índice, o PHP pega o maior valor inteiro já utilizado no índice do array e soma 1. Como estamos inicializando nosso array, o primeiro índice será 0. Par o próximo valor que for adicionado no array será adicionado 1 ao índice.

Para iniciar o array com o índice 1 e mesmo assim escrever um código enxuto basta informar o índice na criação do array. Veja:

<?php
$nota = array( 1 => 10, 2 => 5, 3 => 7, 4 => 7, 5 => 3 );
for ( $indice = 1 ; $indice <= 5 ; $indice++ ) {
	echo 'A nota ' . $indice . ' é' . $nota[$indice] . '<br>';
}
?>

A chave, ou índice de cada valor pode ser indicado na criação do array seguindo a seguinte regra: indice => valor.

Lembra que eu disse que quando adicionamos um valor ao array e não informamos o índice o PHP encontra o maior número inteiro e soma 1? Então o código acima pode ser reescrito da seguinte forma:

<?php
$nota = array( 1 => 10, 5, 7, 7, 3 );
for ( $indice = 1 ; $indice <= 5 ; $indice++ ) {
	echo 'A nota ' . $indice . ' é' . $nota[$indice] . '<br>';
}
?>

Informando o índice inteiro no primeiro valor, os próximos serão preenchidos automaticamente somando 1.

O índice do tipo string também pode ser informado na inicialização da variável:

<?php
$pessoa = array('nome' => 'Edgar Ferreira da Silva', 'idade' => 23, 'sexo' => 'masculino');

echo 'Meu nome é ' . $pessoa['nome'] . '. Sou do sexo ' . $pessoa['sexo'] . ' e tenho ' . $pessoa['idade'] . ' anos.';
?>

Outra forma que o PHP aceita de criação e alimentação de arrays é omitindo o índice. Veja:

<?php
$nota = array();
$nota[] = 10;
$nota[] = 5;
$nota[] = 7;
$nota[] = 7;
$nota[] = 3;

for ( $indice = 0 ; $indice < 5 ; $indice++ ) {
	echo 'A nota ' . $indice . ' é' . $nota[$indice] . '<br>';
}
?>

Veja que o índice não foi passado na atribuição dos valores. Isso diz ao PHP para ele gerenciar o índice. Portanto ele no primeiro valor atribui o índice 0, e nos demais vai somando 1. Para começar do 1 basta fazer o seguinte:

<?php
$nota = array();
$nota[1] = 10;
$nota[] = 5;
$nota[] = 7;
$nota[] = 7;
$nota[] = 3;

for ( $indice = 1 ; $indice <= 5 ; $indice++ ) {
	echo 'A nota ' . $indice . ' é' . $nota[$indice] . '<br>';
}
?>

Informando o primeiro índice, os próximos serão somados 1.




Enviado por xKuRt em 15/07/2010 às 16:07


Itens relacionados

Curso de PHP: Estrutura de repetição while
Curso de PHP: Operações aritméticas
Curso de PHP: Identação do código e comentários
Curso de PHP: Estrutura de repetição do while
Curso de PHP: Operadores lógicos - Parte 2
Curso de PHP: Introdução a linguagem PHP
Curso de PHP: Imprimindo informações (echo e print)
Curso de PHP: Operadores de incremento e decremento
Curso de PHP: Variáveis
Curso de PHP: Estrutura da linguagem

Listar todos itens relacionados

Avaliação

Avaliação desta publicação: 10.00; Total de avaliações: 1


Avaliar:


A avaliação de publicações é restrita a membros cadastrados e logados no nosso site.



Comentários

Este artigo ainda não foi comentado ou o(s) comentário(s) que foi(ram) enviado(s) a ele ainda não foi(ram) publicado(s).


Envio de comentário:




  

Sábado, 20 de Dezembro de 2014




Top 5 membros

Últimos membros online

Últimos membros cadastrados



Capa do livro
Guerreiro SEO


Capa do livro
Modelagem de Personagens Com Maya 8


Capa do livro
Java na Web com JSF, Spring, Hibernate e Netbeans 6





Hostnet

IMD