Beruflich Dokumente
Kultur Dokumente
Acessados por um nico identificador (nome do array) cada posio pode ser acessada por um
indicador, numrico ou texto. Como dito, arrays so posies de memria, ou seja, umavarivel de
memria. Portanto um array nada mais que um tipo de varivel. O array sempre deve ser
inicializado, e para fazer isso basta utilizar a funo array.
<?php
$meuArray = array();
?>
O cdigo acima indica ao PHP que a varivel acima um array. Vejamos pra que usar um
array.Veja o seguinte cdigo:
<?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 cdigo 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;
Qual a vantagem de usar um array ao invs de variveis separadas? Veja que no primeiro cdigo
precisamos de 5 instrues echo para mostrar todas as notas. No segundo, tambm utilizamos 5
instrues, porm, o ideal diminuir essas instrues. Veja como:
<?php
$nota = array();
$nota[1] = 10;
$nota[2] = 5;
$nota[3] = 7;
$nota[4] = 7;
$nota[5] = 3;
ndice string
<?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 cdigo acima uma array normal, a nica diferena 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
varivel 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
<?php
$nota = array( 10, 5, 7, 7, 3 );
for ( $indice = 0 ; $indice < 5 ; $indice++ ) {
echo 'A nota ' . $indice . ' ' . $nota[$indice] . '<br>';
}
?>
O cdigo acima apresenta um resultado parecido como os primeiros cdigos apresentados no comeo.
O que mudou?
A primeira grande mudana que ele ficou mais enxuto no armazenamento dos valores na varivel,
pois, estamos passando os valores na criao da varivel com a funo array().
Outra mudana que percebemos que a nota no comea mais do 1 e sim do 0. O que ocasionou uma
mudana na inicializao e no teste do for tambm. Porqu?
Quando armazenamos um valor em um array e no 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 prximo valor que for adicionado no array ser adicionado 1 ao ndice.
Para iniciar o array com o ndice 1 e mesmo assim escrever um cdigo enxuto basta informar o ndice
na criao 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 criao do array seguindo a seguinte regra:
indice => valor.
Lembra que eu disse que quando adicionamos um valor ao array e no informamos o ndice o PHP
encontra o maior nmero inteiro e soma 1? Ento o cdigo 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 prximos sero preenchidos automaticamente
somando 1.
<?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 criao e alimentao de arrays omitindo o ndice. Veja:
<?php
$nota = array();
$nota[] = 10;
$nota[] = 5;
$nota[] = 7;
$nota[] = 7;
$nota[] = 3;
<?php
$nota = array();
$nota[1] = 10;
$nota[] = 5;
$nota[] = 7;
$nota[] = 7;
$nota[] = 3;
Uma forma de entender facilmente o que so arrays multimensonais pensar como uma tabela, com
linhas e colunas. Na primeira linha de nosso array, teremos vrios nomes, na segunda linha teremos vrias
idades referentes aos nomes, portanto podemos fazer assim:
<?php
/**
* Inicializao da varivel $lista indicando que um array, porm, u
nidimensional
*/
$lista = array();
/**
* Na primeira linha, vrios nomes, o que exige guardar como um array
*/
$lista[] = array('Maria', 'Carlos', 'Edgar');
/**
* Na segunda linha, vrias idades, o que exige guardar como um array
*/
$lista[] = array(50, 60, 23);
?>
Leia com ateno o cdigo acima. Foi criado um array, e cada linha recebeu outro array. Isso
pode ser pensado como uma tabela, pois s tem duas dimenses.
<?php
$lista = array( array('Maria', 'Carlos', 'Edgar'), array(50, 60, 23) );
echo $lista[0][0]; //imprimindo a primeira linha e a primeira coluna
echo '<br />';
<?php
$cubo = array('Edgar' => array( 'ontem' => array(10, 11, 12),
'hoje' => array(15, 16, 17)),
'Carlos' => array( 'ontem' => array(21, 22, 55),
'hoje' => array(25, 35, 11)),
'Jos' => array( 'ontem' => array(99, 82, 75),
'hoje' => array(44, 15, 07)));
O cdigo acima ilustra o cenrio onde trs pessoas (Edgar, Carlos e Jos) que em dois dias
(ontem e hoje) escolheram 3 dezenas.
Perceba tambm que voc pode usar strings como indicadores de posio nos arrays
multidimensionais.