Curso de PHP: Array (matrizes) - Parte 2


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



Digg del.icio.us

No post passado, sobre arrays unidimensionais, foi explicado os conceitos básicos sobre arrays. E até agora, vimos apenas com uma dimensão, para melhor ilustrar, podemos falar que vimos um array como uma lista ou fila única. Mas as matrizes são muito mais úteis.

Relembrando, para criar um array unidimensional podemos fazer:

<?php
$lista = array('Maria', 'Carlos', 'Edgar');
for ($i = 0; $i < 3; $i++) {
	echo 'Posição: ' . $i . ' Nome: ' . $lista[$i] . '<br />';
}
?>

O código acima irá exibir uma listagem de nomes bem simples.

Imagine um cenário onde além do nome, gostaria de exibir a idade referente as pessoas. Já que os nomes estão armazenados em um array, não seria interessante armazenar a idade em um array também?

<?php
$lista = array('Maria', 'Carlos', 'Edgar');
$idade = array(50, 60, 23);
for ($i = 0; $i < 3; $i++) {
	echo 'Posição: ' . $i . ' Nome: ' . $lista[$i] . ' Idade: ' . $idade[$i] .'<br />';
}
?>

Bom, ficou bem claro que as idades estão diretamente ligadas aos nomes. Porém ainda estamos utilizando dois arrays unidimensionais.

Uma forma de entender facilmente o que são arrays multimensonais é pensar como uma tabela, com linhas e colunas. Na primeira linha de nosso array, teremos vários nomes, na segunda linha teremos várias idades referentes aos nomes, portanto podemos fazer assim:

<?php
/**
* Inicialização da variável $lista indicando que é um array, porém, unidimensional
*/

$lista = array();
   
/**
* Na primeira linha, vários nomes, o que exige guardar como um array
*/

$lista[] = array('Maria', 'Carlos', 'Edgar');
   
/**
* Na segunda linha, várias idades, o que exige guardar como um array
*/

$lista[] = array(50, 60, 23);
   
echo $lista[0][0]; //imprimindo a primeira linha e a primeira coluna
echo '<br />';
   
echo $lista[0][1]; //imprimindo a primeira linha e a segunda coluna
echo '<br />';
   
echo $lista[0][3]; //imprimindo a primeira linha e a terceira coluna
echo '<br />';

echo $lista[1][0]; //imprimindo a segunda linha e a primeira coluna
echo '<br />';
   
echo $lista[1][1]; //imprimindo a segunda linha e a segunda coluna
echo '<br />';
   
echo $lista[1][3]; //imprimindo a segunda linha e a terceira coluna
echo '<br />';
?>

Leia com atenção o código acima. Foi criado um array, e cada linha recebeu outro array. Isso pode ser pensado como uma tabela, pois só tem duas dimensões.

Não existe limite para as dimensões de um array, porém, a medida em que se aumente as dimensões de um array, fica mais difícil de representá-la graficamente.

Existem várias formas de se criar um array multidimensionais, dinamicamente, como feito anteriormente, ou seja, montando linha a linha, ou, na declaração da variável.

<?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 />';
   
echo $lista[0][1]; //imprimindo a primeira linha e a segunda coluna
echo '<br />';
   
echo $lista[0][3]; //imprimindo a primeira linha e a terceira coluna
echo '<br />';

echo $lista[1][0]; //imprimindo a segunda linha e a primeira coluna
echo '<br />';
   
echo $lista[1][1]; //imprimindo a segunda linha e a segunda coluna
echo '<br />';
   
echo $lista[1][3]; //imprimindo a segunda linha e a terceira coluna
echo '<br />';
?>

O resultado é o mesmo, um array de array. Porém, mais curto.

<?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))
);

//imprimindo a segunda dezena do José de ontem.
echo $cubo['José']['ontem'][1];
   
//mudando a 3 dezena de hoje do Carlos
$cubo['Carlos']['hoje'][2] = 28;
?>

O código acima ilustra o cenário onde três pessoas (Edgar, Carlos e José) que em dois dias (ontem e hoje) escolheram 3 dezenas.

Perceba também que você pode usar strings como indicadores de posição nos arrays multidimensionais.




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


Itens relacionados

Curso de PHP: Tipos de dados
Curso de PHP: Operadores lógicos - Parte 2
Curso de PHP: Operadores relacionais
Curso de PHP: Estruturas condicionais - if-elseif-else - Parte 1
Curso de PHP: Estrutura condicional switch
Curso de PHP: Imprimindo informações (echo e print)
Curso de PHP: Operadores de incremento e decremento
Curso de PHP: Estrutura de repetição do while
Curso de PHP: Estrutura de repetição while
Curso de PHP: Operadores lógicos - Parte 1

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:




  

Quinta, 18 de Setembro de 2014




Top 5 membros

Últimos membros online

Últimos membros cadastrados



Capa do livro
Segurança de Dados - Criptografia em Rede de Computador


Capa do livro
Use a Cabeça! Análise de Dados


Capa do livro
Fundamentos de Informática - Eletrônica Básica para Computação





Hostnet

IMD