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: Estruturas condicionais - if-elseif-else - Parte 2
Curso de PHP: Variáveis
Curso de PHP: Introdução a linguagem PHP
Curso de PHP: Operadores de incremento e decremento
Curso de PHP: Tipos de dados
Curso de PHP: Estrutura de repetição for
Curso de PHP: Operações aritméticas
Curso de PHP: Imprimindo informações (echo e print)
Curso de PHP: Estrutura de repetição do 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:




  

Sábado, 01 de Novembro de 2014




Top 5 membros

Últimos membros online

Últimos membros cadastrados



Capa do livro
Arte de Escrever Programas Legíveis, A - Técnicas Simples e Práticas para Elaboração de Programas Fáceis de Serem Lidos e Entendidos


Capa do livro
Informática Na Escola: Vol. 4


Capa do livro
Análise das Estruturas: Métodos das Forças e Métodos dos Deslocamentos 2ªEd





Hostnet

IMD