Php04

Post on 08-Jul-2015

88 views 1 download

Transcript of Php04

Aula 04

Instrutor: José Fernando Santana Andradefernando.amdrade@gmail.com

Desenvolvimento Web I

17/12/12 Desenvolvimento Web I 2/46

Estruturas de dados compostas

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.

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 ?

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

17/12/12 Desenvolvimento Web I 6/46

Estruturas de dados compostas

Homogênea Heterogênea

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

17/12/12 Desenvolvimento Web I 8/46

Vetor

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

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

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

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

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

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

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

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 />';

17/12/12 Desenvolvimento Web I 17/46

Registro

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

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'];

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

17/12/12 Desenvolvimento Web I 20/46

foreach

foreach(expressão_array as $valor){

instruções}

17/12/12 Desenvolvimento Web I 21/46

Exemplo

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

echo "$valor <br />";}

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

??

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

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'];

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";}

}

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

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 />";}

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

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 />";

}

17/12/12 Desenvolvimento Web I 30/46

Exercício

Faça um script para inverter um array

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

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

17/12/12 Desenvolvimento Web I 33/46

Manipulação de arrays

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

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

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

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

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

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

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

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”;}

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';

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

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

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

17/12/12 Desenvolvimento Web I 46/46

Obrigado !