Php04

46
Aula 04 Instrutor: José Fernando Santana Andrade [email protected] Desenvolvimento Web I

Transcript of Php04

Page 1: Php04

Aula 04

Instrutor: José Fernando Santana [email protected]

Desenvolvimento Web I

Page 2: Php04

17/12/12 Desenvolvimento Web I 2/46

Estruturas de dados compostas

Page 3: Php04

17/12/12 Desenvolvimento Web I 3/46

Estruturas de dados compostas

Problema: faça um script que calcule a média ponderada de 300 alunos e imprimar o total de aprovados, reprovados, maior e menor nota.

Page 4: Php04

17/12/12 Desenvolvimento Web I 4/46

Estruturas de dados compostas

Problema: faça um script que calcule a média ponderada de 300 alunos e imprimar o total de aprovados, reprovados, maior e menor nota.

De quantas variáveis precisamos ?

Page 5: Php04

17/12/12 Desenvolvimento Web I 5/46

Estruturas de dados compostas

● Aplicações que necessitam de muitas variáveis

● Ajudam a organizar o código

Page 6: Php04

17/12/12 Desenvolvimento Web I 6/46

Estruturas de dados compostas

Homogênea Heterogênea

Page 7: Php04

17/12/12 Desenvolvimento Web I 7/46

Vetor

● Estrutura composta unidimensional● Estrutura homogênea● Faz uso de uma variável indexada● Cada posição posição da variável é

chamada de índice

Page 8: Php04

17/12/12 Desenvolvimento Web I 8/46

Vetor

Page 9: Php04

17/12/12 Desenvolvimento Web I 9/46

Vetor

● Para acessar usamos o identificador da variável seguido do índice do qual queremos o valor

Page 10: Php04

17/12/12 Desenvolvimento Web I 10/46

Exemplo

0 1 2 3 4

caixa sapato camisa meia gravata

itens

itens[1] → sapatoitens[3] → meia

Page 11: Php04

17/12/12 Desenvolvimento Web I 11/46

Matriz

● Estrutura composta multidimensional● Problemas que precisam de mais de uma

dimensão em uma estrutura● As posições têm um índice para cada

dimensão

Page 12: Php04

17/12/12 Desenvolvimento Web I 12/46

Matriz

1,1 1,2 … 1,n

2,1 2,2 … 2,n

… … … …

m,1 m,2 … m,n

Page 13: Php04

17/12/12 Desenvolvimento Web I 13/46

Exemplo

1,1 1,2

sapato camisa

2,1 2,2

meia caixa

itens

itens[2][1] → meia

itens[1][1] → sapato

Page 14: Php04

17/12/12 Desenvolvimento Web I 14/46

Tipo array

● É uma lista de valores armazenados na memória, os quais podem ser de tipos diferentes

● Cada valor é relacionado a uma chave

Page 15: Php04

17/12/12 Desenvolvimento Web I 15/46

Criando um array

array([chave =>] valor, … )

$cores = array('vermelho','verde','azul');

$cores = array(0=>'vermelho',1=>'verde',2=>'azul');

$cores[] = 'vermelho';$cores[] = 'verde';$cores[] = 'azul';

ou

ou

Page 16: Php04

17/12/12 Desenvolvimento Web I 16/46

Exemplo

$nomes = array('maria','joão','carlos');$nomes[] = 'josé';var_dump($nomes);echo '<br />';print_r($nomes);echo '<br />';echo $nomes[0].'<br />';echo $nomes[1].'<br />';echo $nomes[2].'<br />';echo $nomes[3].'<br />';

Page 17: Php04

17/12/12 Desenvolvimento Web I 17/46

Registro

● Além dos índices do tipo inteiro, índices literais também são suportados

Page 18: Php04

17/12/12 Desenvolvimento Web I 18/46

Exemplo

$pessoa['nome'] = 'Maria da Silva';$pessoa['rua'] = 'São João';$pessoa['bairro'] = 'Cidade Alta';$pessoa['cidade'] = 'Porto Alegre';

//para acessar basta indicar a chave

echo $pessoa['nome'];echo $pessoa['rua'];echo $pessoa['bairro'];echo $pessoa['cidade'];

Page 19: Php04

17/12/12 Desenvolvimento Web I 19/46

foreach

● É um laço de repetição para iterações em arrays ou matrizes

● FOR simplificado que decompõe um vetor ou matriz em cada um de seus elementos por meio da cláusula AS

Page 20: Php04

17/12/12 Desenvolvimento Web I 20/46

foreach

foreach(expressão_array as $valor){

instruções}

Page 21: Php04

17/12/12 Desenvolvimento Web I 21/46

Exemplo

$cores = array('vermelho','verde','azul');foreach($nomes as $valor){

echo "$valor <br />";}

Page 22: Php04

17/12/12 Desenvolvimento Web I 22/46

Iterações

$nomes = array('maria','joão','carlos','josé');for($i=0;$i<4;$i++){

echo "$nomes[$i] <br />";}

foreach($nomes as $valor){

echo "$valor <br />";}

FOR FOR X FOREACH FOREACH

??

Page 23: Php04

17/12/12 Desenvolvimento Web I 23/46

Array multidimensionais

● Ou matrizes são array nos quais algumas de suas posições podem conter outros arrays

Page 24: Php04

17/12/12 Desenvolvimento Web I 24/46

Exemplo

$carros = array('Palio'=>array(

'cor'=>'preto','potencia'=>'1.0','opcionais'=>'Ar Cond.'),

'Corsa'=>array('cor'=>'branco','potencia'=>'1.3','opcionais'=>'MP3'),

'Gol'=>array('cor'=>'cinza','potencia'=>'1.0','opcionais'=>'DVD'));

echo $carros['Corsa']['potencia'];

Page 25: Php04

17/12/12 Desenvolvimento Web I 25/46

Exemplo

foreach($carros as $modelo=>$caracteristicas){

echo "=> modelo $modelo <br />";foreach($caracteristicas as $caracteristica=>$valor){

echo "caracteristica $caracteristica => $valor <br />\n";}

}

Page 26: Php04

17/12/12 Desenvolvimento Web I 26/46

Exercício

Modele e inicialize um registro que contenha os seguintes dados nome, matricula e curso. Imprima seu registro.

Ex.:

Nome => James Ross

Matricula => 681324

Curso => Redes de Computadores

Page 27: Php04

17/12/12 Desenvolvimento Web I 27/46

Exercício

$cad = array('Nome'=>'James Ross','Matricula'=>681324,'Curso'=>"Redes de Computadores");

foreach($cad as $aux=>$valor){

echo "$aux => $valor <br />";}

Page 28: Php04

17/12/12 Desenvolvimento Web I 28/46

Exercício

x x oo x ox o x

Faça uma representação para o joga da velha

Page 29: Php04

17/12/12 Desenvolvimento Web I 29/46

Exercício

$velha=array(array('X','X','O'),array('O','X','O'),array('X','O','X'));

foreach($velha as $linha){

foreach($linha as $valor){

echo "$valor ";}echo "<br />";

}

Page 30: Php04

17/12/12 Desenvolvimento Web I 30/46

Exercício

Faça um script para inverter um array

Page 31: Php04

17/12/12 Desenvolvimento Web I 31/46

Exercício

$a=array(1,2,3,4,5,6,7,8,9);print_r($a); echo '<br />';//retorna o tamanho do array$t = sizeof($a);/*como invertemos os extremos só precisamos fazer a metade do número de elementos*/for($i=0;$i<$t/2;$i++){

$aux = $a[$i];$a[$i] = $a[($t-1)-$i];$a[($t-1)-$i] = $aux;

}print_r($a);

Page 32: Php04

17/12/12 Desenvolvimento Web I 32/46

Exercício

Faça um script para ordenar um array:

$valor = array(34,2,0,47,1);

0 1 2 34 47

Page 33: Php04

17/12/12 Desenvolvimento Web I 33/46

Manipulação de arrays

Page 34: Php04

17/12/12 Desenvolvimento Web I 34/46

array_push

● Adiciona elementos ao final do array

$a = array('verde','azul','branco');array_push($a,'amarelo');print_r($a);

Page 35: Php04

17/12/12 Desenvolvimento Web I 35/46

array_pop

● Remove um valor do final de um array

$a = array('verde','azul','branco','amarelo');array_pop($a);print_r($a);

Page 36: Php04

17/12/12 Desenvolvimento Web I 36/46

array_shift

● Remove um elemento do início do array

$a = array('verde','azul','branco','amarelo');array_shift($a);print_r($a);

Page 37: Php04

17/12/12 Desenvolvimento Web I 37/46

array_unshift

● Adiciona um elemento do início do array

$a = array('verde','azul','branco');array_unshift($a,'amarelo');print_r($a);

Page 38: Php04

17/12/12 Desenvolvimento Web I 38/46

array_reverse

● Recebe um array e retorna-o na ordem inversa

$a = array('verde','azul','branco');$b = array_reverse($a,false);$c = array_reverse($a,true);print_r($b);print_r($c);

Com TRUE as chaves são preservadas

Page 39: Php04

17/12/12 Desenvolvimento Web I 39/46

array_merge

● Mesca dois ou mais arrays. Um é adicionado ao final do outro

$a = array('azul','branco');$b = array('verde','vermelho');$c = array_merge($a,$b);print_r($c);

Page 40: Php04

17/12/12 Desenvolvimento Web I 40/46

array_slice

● Extrai uma porção do array

$a = array('azul','branco','verde','vermelho','cinza');$b = array_slice($a,1,3);print_r($b);

Page 41: Php04

17/12/12 Desenvolvimento Web I 41/46

in_array

● Verifica se um array contém um determinado valor

$a = array('azul','branco','verde','vermelho','cinza');if(in_array('verde',$a)){

echo “valor encontrado”;}

Page 42: Php04

17/12/12 Desenvolvimento Web I 42/46

count

● Retorna a quantidade de elementos de um array

$a = array('azul','branco','verde','vermelho','cinza');echo 'o array $a contém '.count($a).' posições';

Page 43: Php04

17/12/12 Desenvolvimento Web I 43/46

sort

● Ordena um array pelo seu valor

$a = array('azul','branco','verde','vermelho','cinza');sort($a);print_r($a);

Page 44: Php04

17/12/12 Desenvolvimento Web I 44/46

explode

● Converte uma string em um array, separando os elementos por meio de um separador

$string = "pé/meia/sapato";$resultado = explode("/",$string);print_r($resultado);

Page 45: Php04

17/12/12 Desenvolvimento Web I 45/46

implode

● Converte um array em uma string, separando os elementos por meio de um separador

$nome = array('pé','meia','sapato');$resultado = implode("+",$nome);print_r($resultado);

Page 46: Php04

17/12/12 Desenvolvimento Web I 46/46

Obrigado !