Php04
-
Upload
fernando-andrade -
Category
Technology
-
view
88 -
download
1
Transcript of Php04
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 !