Webly: [aula 4] Vetores (arrays) Em Php - Webly

Ir para

Regras para postagem

É permitido postar livremente respostas com comentários, testes e avaliações dos scripts. Postagens contendo dúvidas sobre o script, deverão ser postadas no fórum principal de PHP

IMPORTANTE: Todos os tutoriais postados neste fórum irão automaticamente para o portal Webly. Contribua você também e faça parte da equipe de colaboradores que fazem a evolução da web. Obrigado.
Página 1 de 1

[aula 4] Vetores (arrays) Em Php Avaliar tópico: -----

#1 Membro offline   nao_sei Ícone

  • Equipe iEvolution
  • Ícone
  • Grupo: Membro Amigo
  • Posts: 1040
  • Cadastrado: 06-julho 06
  • Localização:Joinville - SC

Postou 07 fevereiro 2007 - 05:40

Arrays (ou vetores)

Vetores (arrays) são como mapas de dados, onde você escolhe uma posição em que será armazenada uma informação qualquer, mais precisamente um valor do tipo vetor é um dicionário onde os índices são as chaves de acesso. Esses vetores podem ser tanto unidimensionais quanto multidimensionais, estes últimos também são chamados de matrizes.
O PHP facilita ainda mais a utilização de vetores já que não é necessário informar o tamanho dele, diferente de outras linguagens (Java, C++). Além disso, o PHP aceita vetores com índice numérico ou textual (chamado também de índice associativo).

Criando um Vetor.
Um vetor pode ser criado a partir do construtor array. Ele pega um certo número de pares (chave => valor) separados por vírgula e cria o vetor.
$vetor = array( 12 => “Primero”, 13=> “Segundo”);  //cria o array com índice 12, e 13
echo $vetor[12];
echo $vetor[13];

Dessa forma os índices do vetor são definidos na hora da criação e não precisam necessariamente começar em zero ou serem números contíguos.
Para criar um array com índices(chaves) textuais é semelhante a forma ilustrada acima, basta trocar o primeiro elemento do par:
$vetor = array( “um” => “Primero”, “dois”=> “Segundo”);  //cria o array com índice “um”, e “dois”
echo $vetor[“um”];
echo $vetor[“dois”];



Outra forma simples de criar um array utilizando o construtor é suprimindo o valor dos índices (chaves). Dessa forma os índices começarão em 0 (zero) e serão números contíguos:
$ vetor = array( “Primero”, “Segundo”);  //cria o array 
echo $vetor[0];
echo $ vetor[1];



Para adicionar um novo valor a um array já existente basta fazer o seguinte:
$vetor[] = “Novo Valor”;

Dessa forma o maior índice do vetor é recuperado é o novo índice será maior_indice+1.
Nota: Essa também é uma forma válida para criar um novo vetor.

Existe outra forma de fazer a inclusão de um novo valor ao vetor que consiste em simplesmente adicionar uma nova chave e um novo valor no array.
$vetor[3] = “Outro Valor”;

OBS: caso o índice escolhido por você já existe o novo valor irá sobrescrever o valor antigo.

Dica:
Para testar como ficou o vetor (não importa a dimensão), sugiro uma forma que aprendi na empresa que trabalho, simples por sinal mas muito funcional:
//Utiliza fonte pré-formatada (visualiza o vetor como foi criado no servidor)
echo "<pre>";
	 //Imprime o vetor com todas suas dimensões 
	 print_r($vetor); 
echo "</pre>";

Nota: para saber mais sobre a função print_r acesse: http://br2.php.net/m...ion.print-r.php

Vetores Multidimensionais (matrizes)

Os vetores multidimensionais funcionam da mesma forma que os vetores unidimensionais, a única diferença é quantidade de índices que teremos nesse caso.
Veja um exemplo de como criar uma matriz:
$matriz = array(1 => array(6 => 5, 13 => 9, "a" => 42));
Neste caso no índice um serão criados outros 3 índices que podem ser acessados da seguinte maneira:
echo $matriz[1][6]; //imprime 5
echo $matriz[1][13]; //imprime 5
echo $matriz[1][“a”]; //imprime 42

Podemos também visualizar nossa matriz dessa forma:
echo "<pre>";
	 //Imprime o vetor com todas suas dimensões 
	 print_r($matriz); 
echo "</pre>";



Trabalhar com matrizes também é simples, basta fazer corretamente a associação dos índices que não tem erro.

Para você se aprofundar nos estudos de vetores e matrizes acesse esses links do manual do PHP:
http://br2.php.net/m...types.array.php

http://br2.php.net/m...ators.array.php

O PHP oferece várias funções extremamente úteis para manipulação de vetores, acesse: http://br2.php.net/array

Exercícios:

1 - Quais as formas para criar um vetor ?
2 - Crie um vetor bidimensional com 20 elementos quaisquer e mostre-os na tela.
3 - O que você pode dizer sobre esse array impresso na sua tela:
Array
(
[15] => Array
(
[0] => Opa
[1] => Outro
[2] => Mais um
[ultimo] => Outro ainda
)

)
- Não dê o peixe (código), ensine a pescar.
- Leia sempre as regras!
- Dúvidas? Pra isso temos o fórum, MP e MSN não rola.

Eu podia estar matando, eu podia estar roubando, eu podia estar me suicidando, mas não eu estou aqui apenas pedindo uma visitinha no meu Blog: www.bitfrito.com/blog
0

#2 Membro offline   jaderubini Ícone

  • Agência Interag
  • Ícone
  • Grupo: Membro Amigo
  • Posts: 169
  • Cadastrado: 10-agosto 06
  • Localização:Ipatinga / MG
  • Interesses:CSS, XHTML, semântica, semântica, semântica, Web Standards, Web Standards, Web Standards, PHP, Javascript, AJAX, AJAX e AJAX.

Postou 07 fevereiro 2007 - 06:48

1 - Quais as formas para criar um vetor ?
Um vetor é criado através do construtor array, especificando-se um índice e uma chave para esse índice. [p.ex.: array(1 => "um", 2 => "dois")]

---------------------------------------------

2 - Crie um vetor bi-dimensional com 20 elementos quaisquer e mostre-os na tela.
<?php
	$vetor = array(
		1 => array(
			1 => "01", 2 => "02", 3 => "03", 4 => "04", 5 => "05"
		),
		
		2 => array(
			1 => "06", 2 => "07", 3 => "08", 4 => "09", 5 => "10"
		),
		
		3 => array(
			1 => "11", 2 => "12", 3 => "13", 4 => "14", 5 => "15"
		),
		
		4 => array(
			1 => "16", 2 => "17", 3 => "18", 4 => "19", 5 => "20"
		)
	);
	
	echo $vetor[1][1] . "&nbsp; | &nbsp;" . $vetor[1][2] . "&nbsp; | &nbsp;" . $vetor[1][3] . "&nbsp; | &nbsp;" . $vetor[1][4] . "&nbsp; | &nbsp;" . $vetor[1][5] . "<br />" .
		$vetor[2][1] . "&nbsp; | &nbsp;" . $vetor[2][2] . "&nbsp; | &nbsp;" . $vetor[2][3] . "&nbsp; | &nbsp;" . $vetor[2][4] . "&nbsp; | &nbsp;" . $vetor[2][5] . "<br />" .
		$vetor[3][1] . "&nbsp; | &nbsp;" . $vetor[3][2] . "&nbsp; | &nbsp;" . $vetor[3][3] . "&nbsp; | &nbsp;" . $vetor[3][4] . "&nbsp; | &nbsp;" . $vetor[3][5] . "<br />" .
		$vetor[4][1] . "&nbsp; | &nbsp;" . $vetor[4][2] . "&nbsp; | &nbsp;" . $vetor[4][3] . "&nbsp; | &nbsp;" . $vetor[4][4] . "&nbsp; | &nbsp;" . $vetor[4][5];		
?>

Este código imprimirá o seguinte resultado na tela:
01  |  02  |  03  |  04  |  05
06  |  07  |  08  |  09  |  10
11  |  12  |  13  |  14  |  15
16  |  17  |  18  |  19  |  20


---------------------------------------------

3 - O que você pode dizer sobre esse array impresso na sua tela:
Array
(
	[15] => Array
		(
			[0] => Opa
			[1] => Outro
			[2] => Mais um
			[ultimo] => Outro ainda
		)

)

Não sei se entendi bem a pergunta, mas eu diria que trata-se de uma matriz que, em seu 15º índice possui 4 sub-índices (Opa, Outro, Mais um, outro ainda).

Ou ainda, por apresentar apenas um índice, poderia ser construída da seguinte forma:
array( 0 => "Opa", 1 => "Outro", 2 => "Mais um", ultimo => "Outro ainda")

www.jaderubini.wordpress.com - Visitem meu blog sobre webstandards

Doido pra aprender Javascript, PHP e AJAX. Será que eu dou conta?!
0

#3 Membro offline   dupa31 Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 65
  • Cadastrado: 03-dezembro 06

Postou 08 fevereiro 2007 - 07:40

Dessa forma também está correto ?


Quote

<?php
1=> array(
$vetor = array(
1 => "01", 2 => 02, 3 => 03, 4 => 04, 5 => 05
),
print_r($array);
2 => array(
1 => 06, 2 => 07, 3 => 08, 4 => 09, 5 => 10
),
print_r($array);
3 => array(
1 => 11, 2 => 12, 3 => 13, 4 => 14, 5 => 15
),
print_r($array);
4 => array(
1 => 16, 2 => 17, 3 => 18, 4 => 19, 5 => 20
);
print_r($array);

?>

Eduardo Virginio - Desenvolvedor Web
http://www.tag-designer.com
Desenvolvimento e Hospedagem
0

#4 Membro offline   nao_sei Ícone

  • Equipe iEvolution
  • Ícone
  • Grupo: Membro Amigo
  • Posts: 1040
  • Cadastrado: 06-julho 06
  • Localização:Joinville - SC

Postou 08 fevereiro 2007 - 09:38

jaderubini, é isso ae cara... está correto...
realmente o terceiro exercício ficou meio confuso mesmo...
:thumbsup:

dupa31,
não está correto, pois quando vc inicia a declaração de um array vc não pode colocar outros comandos dentro do construtor. Vc deve finalizar a declaração antes disso.

tente refazer ae
:thumbsup:
- Não dê o peixe (código), ensine a pescar.
- Leia sempre as regras!
- Dúvidas? Pra isso temos o fórum, MP e MSN não rola.

Eu podia estar matando, eu podia estar roubando, eu podia estar me suicidando, mas não eu estou aqui apenas pedindo uma visitinha no meu Blog: www.bitfrito.com/blog
0

#5 Membro offline   dupa31 Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 65
  • Cadastrado: 03-dezembro 06

Postou 08 fevereiro 2007 - 11:48

Ver postnao_sei, em 08/02/2007 - 10:38, disse:

jaderubini, é isso ae cara... está correto...
realmente o terceiro exercício ficou meio confuso mesmo...
:thumbsup:

dupa31,
não está correto, pois quando vc inicia a declaração de um array vc não pode colocar outros comandos dentro do construtor. Vc deve finalizar a declaração antes disso.

tente refazer ae
:thumbsup:


Você está se referindo o comando :seta: print_r($array); ?
Eduardo Virginio - Desenvolvedor Web
http://www.tag-designer.com
Desenvolvimento e Hospedagem
0

#6 Membro offline   jaderubini Ícone

  • Agência Interag
  • Ícone
  • Grupo: Membro Amigo
  • Posts: 169
  • Cadastrado: 10-agosto 06
  • Localização:Ipatinga / MG
  • Interesses:CSS, XHTML, semântica, semântica, semântica, Web Standards, Web Standards, Web Standards, PHP, Javascript, AJAX, AJAX e AJAX.

Postou 08 fevereiro 2007 - 02:09

Ver postnao_sei, em 08/02/2007 - 10:38, disse:

jaderubini, é isso ae cara... está correto...
realmente o terceiro exercício ficou meio confuso mesmo...
:thumbsup:

:graduated: :lendo:
www.jaderubini.wordpress.com - Visitem meu blog sobre webstandards

Doido pra aprender Javascript, PHP e AJAX. Será que eu dou conta?!
0

#7 Membro offline   Thiago Rodrigues Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 48
  • Cadastrado: 22-dezembro 06
  • Interesses:Html + css + pradrões web + Php + Javascript + Ajax + Monetização

Postou 09 fevereiro 2007 - 12:03

2 - Crie um vetor bidimensional com 20 elementos quaisquer e mostre-os na tela.

<?php
	$vetor = array(
		1 => array(
			1 => "01", 2 => "02", 3 => "03", 4 => "04", 5 => "05"
		),
		
		2 => array(
			1 => "06", 2 => "07", 3 => "08", 4 => "09", 5 => "10"
		),
		
		3 => array(
			1 => "11", 2 => "12", 3 => "13", 4 => "14", 5 => "15"
		),
		
		4 => array(
			1 => "16", 2 => "17", 3 => "18", 4 => "19", 5 => "20"
		)
	);
	 
	$x = 1; //a variável x é iniciada com valor 1
	While($x <= 5) //enquanto $x for menor ou igual a 5
	{
		echo '$vetor[1][' . $x . '] = ' . $vetor[1][$x] . "<br>\n";
		$x++; // e incrementado
	};
	
	echo "<br>";
	$x = 1; //volto a variavel x com valor 1
	While($x <= 5) //enquanto $x for menor ou igual a 5
	{
		echo '$vetor[2][' . $x . '] = ' . $vetor[2][$x] . "<br>\n";
		$x++; // e incrementado
	};
	
	echo "<br>";
	$x = 1; //volto a variavel x com valor 1
	While($x <= 5) //enquanto $x for menor ou igual a 5
	{
		echo '$vetor[3][' . $x . '] = ' . $vetor[3][$x] . "<br>\n";
		$x++; // e incrementado
	};
	
	echo "<br>";
	$x = 1; //volto a variavel x com valor 1
	While($x <= 5) //enquanto $x for menor ou igual a 5
	{
		echo '$vetor[4][' . $x . '] = ' . $vetor[4][$x] . "<br>\n";
		$x++; // e incrementado
	};
 ?>


E mostra na tela o seguinte:
$vetor[1][1] = 01
$vetor[1][2] = 02
$vetor[1][3] = 03
$vetor[1][4] = 04
$vetor[1][5] = 05

$vetor[2][1] = 06
$vetor[2][2] = 07
$vetor[2][3] = 08
$vetor[2][4] = 09
$vetor[2][5] = 10

$vetor[3][1] = 11
$vetor[3][2] = 12
$vetor[3][3] = 13
$vetor[3][4] = 14
$vetor[3][5] = 15

$vetor[4][1] = 16
$vetor[4][2] = 17
$vetor[4][3] = 18
$vetor[4][4] = 19
$vetor[4][5] = 20


Para mostrar na tela os valores do array eu utilizei uma estrutura de repetição que vimos na aula anterior, fica bem mais prático do que digitar um por um como fizeram logo acima.
Correto?

Abraço
Conheça já:
NerdGames - Tecnologia com uma pitada de diversão
www.nerdgames.net/blog
0

#8 Membro offline   jaderubini Ícone

  • Agência Interag
  • Ícone
  • Grupo: Membro Amigo
  • Posts: 169
  • Cadastrado: 10-agosto 06
  • Localização:Ipatinga / MG
  • Interesses:CSS, XHTML, semântica, semântica, semântica, Web Standards, Web Standards, Web Standards, PHP, Javascript, AJAX, AJAX e AJAX.

Postou 10 fevereiro 2007 - 10:36

Realmente.
Acabei me lembrando que, quando estudei Pascal, nós usávamos o for para imprimir a matriz. Partindo desse princípio, criei esse código pra imprimir nossa matriz:
for($l = 1; $l <= 4; $l++) { //$l = linhas. Para as linhas de 1 a 4...
	for($c = 1; $c <= 5; $c++) { //$c = colunas. ...e colunas de 1 a 5 ...
		echo $vetor[$l][$c] . "&nbsp; | &nbsp;"; //Imprima "vetor[linha][coluna] | "...
	}
	
	echo "<br />"; //...e quebre a linha após a 5ª coluna.
}

Muito mais enxuto, simples e produz o mesmo resultado do código que eu postei anteriormente. :thumbsup:
www.jaderubini.wordpress.com - Visitem meu blog sobre webstandards

Doido pra aprender Javascript, PHP e AJAX. Será que eu dou conta?!
0

#9 Membro offline   Thiago Rodrigues Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 48
  • Cadastrado: 22-dezembro 06
  • Interesses:Html + css + pradrões web + Php + Javascript + Ajax + Monetização

Postou 11 fevereiro 2007 - 12:08

Ver postjaderubini, em 10/02/2007 - 10:36, disse:

Muito mais enxuto, simples e produz o mesmo resultado do código que eu postei anteriormente. :thumbsup:


Muito mais enxuto mesmo. :joia:
Nunca usei o for (so nas últimas aulas no curso (em férias) também usando Pascal, mas não me lembrava, hehehe).
Abraço
Conheça já:
NerdGames - Tecnologia com uma pitada de diversão
www.nerdgames.net/blog
0

#10 Membro offline   jaderubini Ícone

  • Agência Interag
  • Ícone
  • Grupo: Membro Amigo
  • Posts: 169
  • Cadastrado: 10-agosto 06
  • Localização:Ipatinga / MG
  • Interesses:CSS, XHTML, semântica, semântica, semântica, Web Standards, Web Standards, Web Standards, PHP, Javascript, AJAX, AJAX e AJAX.

Postou 17 março 2007 - 09:56

Acabou o GE?
www.jaderubini.wordpress.com - Visitem meu blog sobre webstandards

Doido pra aprender Javascript, PHP e AJAX. Será que eu dou conta?!
0

Página 1 de 1


Resposta rápida

  

1 usuário(s) está(ão) lendo este tópico
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)