Arrays
prof.silvano.oliveira@gmail.com
 Um array pode armazenar vários elementos, onde
cada elemento possui um valor como texto, número
ou mesmo outro array;
 O PHP suporta tanto arrays associativos como
arrays numericamente indexados.
Arrays
Prof Silvano Oliveira (PHP - Arrays) 2
array1.php
$componentes = array("HD", "CPU");
$componentes[2] = "Memória";
/*Na inicialização sem utilização de
índices, o PHP
procura índices livres*/
$componentes[] = "Teclado";
$componentes[] = "Mouse";
for ($i = 0; $i <= 4; $i++)
echo $componentes[$i]."<br>";
Arrays
Prof Silvano Oliveira (PHP - Arrays) 3
 Utilizando a função range(), o PHP
uma sequência ascendente de valores:
cria um array com
array2.php
$numeros = range(1,100); //Números entre 1 e 100
for ($i = 0; $i <= 99; $i++)
echo $numeros[$i]."<br>";
echo "<br>";
$numeroPares = range(2,10,2); //Números pares entre 2 e 10
for ($i = 0; $i <= 4; $i++)
echo $numeroPares[$i]."<br>";
echo "<br>";
$letras = range("a", "z");
for ($i = 0; $i <= 25; $i++)
echo $letras[$i]."<br>";
Arrays
Prof Silvano Oliveira (PHP - Arrays) 4
#Isto é um array associativo (operador =>)
$precos = array("geladeira"=>1290);
$precos["fogão"] = 367;
$precos[2] = 100; #Índice 2 recebe o valor 100
#Adicionado no próximo índice livre: 3
$precos[] = 39;
#Percorrendo arrays associativos...
foreach ($precos as $elemento)
echo $elemento."<br>";
echo "<br>";
#Usando o foreach...
foreach ($precos as $indice => $valor)
echo $indice.": R$ ".$valor."<br>";
Arrays
Prof Silvano Oliveira (PHP - Arrays) 5
array3.php
 A função list() pode ser útil para dividir um
array em chave e valor.
 Podemos separar dois dos valores que a
função each() oferece:
▪ each - Retorna o par chave/valor corrente de um array e
avança o seu cursor;
Função list()
Prof Silvano Oliveira (PHP - Arrays) 6
array4.php
$produtos = array("geladeira"=>1290);
$produtos["fogão"] = 367;
$produtos[2] = 100.21;
$produtos[] = 39;
/*Retrocede o ponteiro interno de array para o
primeiro elemento*/
reset($produtos);
while (list($descricao,$preco) = each($produtos))
echo "$descricao -> $preco <br/>";
Função list()
Prof Silvano Oliveira (PHP - Arrays) 7
 Os elementos são ordenados do menor para
o maior ao final da execução da função:
array5.php
$frutas = array("limao", "uva", "laranja",
"banana", "melancia", "cupuaçu");
sort($frutas);
foreach ($frutas as $chave => $valor)
echo "frutas[".$chave."] = ".$valor."<br>";
Função sort()
Prof Silvano Oliveira (PHP - Arrays) 8
 Os elementos são ordenados do maior para o
menor ao final da execução da função:
array6.php
$frutas = array("limao", "uva", "laranja",
"banana", "melancia", "cupuaçu");
rsort($frutas);
foreach ($frutas as $chave => $valor)
echo "frutas[".$chave."] = ".$valor."<br>";
Função rsort()
Prof Silvano Oliveira (PHP - Arrays) 9
 Embaralha os elementos do array:
array7.php
$frutas = array("limao", "uva", "laranja",
"banana", "melancia", "cupuaçu");
sort($frutas);
shuffle($frutas);
foreach ($frutas as $chave => $valor)
echo "frutas[".$chave."] = ".$valor."<br>";
Função shuffle()
Prof Silvano Oliveira (PHP - Arrays) 10
 Imprime o conteúdo do array passado por
parâmetro:
array8.php
$frutas = array("limao", "uva", "laranja",
"banana", "melancia", "cupuaçu");
print_r($frutas);
Função print_r()
Prof Silvano Oliveira (PHP - Arrays) 11
 Elimina um elemento de forma consistente. A
eliminação pode ser de um elemento ou do
vetor inteiro:
array9.php
$frutas = array("limao", "uva", "laranja", "banana");
unset($frutas[0]);
print_r($frutas);
unset($frutas);
print_r($frutas); #Será gerado um erro. Por que?
Função unset()
Prof Silvano Oliveira (PHP - Arrays) 12
 Verifica se um valor existe no array:
array10.php
 Veja outras funções para arrays aqui:
http://www.php.net/manual/pt_BR/ref.array.php
$frutas = array("limao", "uva", "laranja",
"banana", "melancia", "cupuaçu");
if (in_array("limao", $frutas))
echo "Fruta cadastrada!";
Função in_array()
Prof Silvano Oliveira (PHP - Arrays) 13
 Os arrays não são, necessariamente, uma lista
simples de chaves e de valores;
 Em cada uma de suas posições, pode ser
armazenado um outro array, ou seja,
podemos formar um array de arrays.
Arrays multidimensionais ou Matrizes
Prof Silvano Oliveira (PHP - Arrays) 14
#Matriz identidade
$matriz[0][0] = 1;
$matriz[0][1] = 0;
$matriz[0][2] = 0;
$matriz[1][0] = 0;
$matriz[1][1] = 1;
$matriz[1][2] = 0;
$matriz[2][0] = 0;
$matriz[2][1] = 0;
$matriz[2][2] = 1;
for ($linha = 0;$linha < sizeof($matriz);$linha++) {
for ($coluna = 0;$coluna<count($matriz[$linha]);$coluna++)
echo $matriz[$linha][$coluna]." ";
echo "<br/>";
}
Arrays multidimensionais
Prof Silvano Oliveira (PHP - Arrays) 15
A função count é
semelhante a sizeof
array11.php
array12.php
$perfumes = array(array("Ferrari Black", 17,149.00),
array("212 Men", 23, 259.00),
array("Polo", 2, 128.75));
for ($linha = 0;$linha < sizeof($perfumes);$linha++) {
for ($coluna =0;$coluna<count($perfumes[$linha]);$coluna++)
echo $perfumes[$linha][$coluna]." ";
echo "<br/>";
}
Arrays multidimensionais
Prof Silvano Oliveira (PHP - Arrays) 16
Exercício 01
Criar 2 arquivos em PHP:
1. Fazer um formulário que solicite o número máximo de um
número par. (Envia.php)
2. Fazer um arquivo que receba a informação do envia.php e
crie uma tabela com os números pares até o máximo
enviado. Conforme o exemplo abaixo: (Recebe.php)
Neste mesmo arquivo usar CSS no cabeçalho interno que
mostre as linhas da tabela sólidas de borda 1px e pretas.
Prof Silvano Oliveira (PHP - Arrays) 17
2 4 6 8 10 12 14
Envia.php
<body>
 <fieldset>
 <form action="recebe.php" method="GET">
 Nº Máximo do PAR:
 <input type="text" name="nummax">
 <br><br>
 <input type="submit" value="Enviar">
 </form>
 </fieldset>
</body>
Prof Silvano Oliveira (PHP - Arrays) 18
Recebe.php
<head>
 <title>Exercício PHP</title>
 <style>
 table {
 border-collapse: collapse;
 }
 td {
 border: 1px solid black;
 }
 </style>
</head>
<body>
 <?php
 $nummax = $_GET["nummax"];
 $par = range(2,$nummax,2);
 $tam = count($par)-1;
 echo "<table> <tr>";
 for ($i = 0; $i <= $tam; $i++) {
 echo "<td>$par[$i]</td>";
 }
 echo "</tr></table>";
 ?>
</body>
Prof Silvano Oliveira (PHP - Arrays)
19
Exercício 02
Modificando o arquivo do exercício anterior, recebe.php:
Testar se o valor enviado é menor que 2, e se for, mostrar a
mensagem: “OS DADOS SÃO INSUFICIENTES”. E do
contrário montar a tabela como antes.
Prof Silvano Oliveira (PHP - Arrays) 20
Recebe.php (só a parte do body)
 <body>
 <?php
 $nummax = $_GET["nummax"];
 if ($nummax < 2) {
 echo "DADOS INSUFICIENTES";
 }
 else {
 $par = range(2,$nummax,2);
 $tam = count($par)-1;
 echo "<table> <tr>";
 for ($i = 0; $i <= $tam; $i++) {
 echo "<td>$par[$i]</td>";
 }
 echo "</tr></table>";
 }
 ?>
 </body>
Prof Silvano Oliveira (PHP - Arrays) 21
Exercício 03
Modificando o arquivo do exercício anterior, envia.php:
Montar o formulário como a figura:
No recebe.php mostrar os
números de acordo com a
opção escolhida. E
continuar a testar se o
valor é menor que 2 para
PAR e menor que 1 para
ÍMPAR.
Prof Silvano Oliveira (PHP - Arrays) 22

PW03 - Programação Web PHP Arrays (Vetores)

  • 1.
  • 2.
     Um arraypode armazenar vários elementos, onde cada elemento possui um valor como texto, número ou mesmo outro array;  O PHP suporta tanto arrays associativos como arrays numericamente indexados. Arrays Prof Silvano Oliveira (PHP - Arrays) 2
  • 3.
    array1.php $componentes = array("HD","CPU"); $componentes[2] = "Memória"; /*Na inicialização sem utilização de índices, o PHP procura índices livres*/ $componentes[] = "Teclado"; $componentes[] = "Mouse"; for ($i = 0; $i <= 4; $i++) echo $componentes[$i]."<br>"; Arrays Prof Silvano Oliveira (PHP - Arrays) 3
  • 4.
     Utilizando afunção range(), o PHP uma sequência ascendente de valores: cria um array com array2.php $numeros = range(1,100); //Números entre 1 e 100 for ($i = 0; $i <= 99; $i++) echo $numeros[$i]."<br>"; echo "<br>"; $numeroPares = range(2,10,2); //Números pares entre 2 e 10 for ($i = 0; $i <= 4; $i++) echo $numeroPares[$i]."<br>"; echo "<br>"; $letras = range("a", "z"); for ($i = 0; $i <= 25; $i++) echo $letras[$i]."<br>"; Arrays Prof Silvano Oliveira (PHP - Arrays) 4
  • 5.
    #Isto é umarray associativo (operador =>) $precos = array("geladeira"=>1290); $precos["fogão"] = 367; $precos[2] = 100; #Índice 2 recebe o valor 100 #Adicionado no próximo índice livre: 3 $precos[] = 39; #Percorrendo arrays associativos... foreach ($precos as $elemento) echo $elemento."<br>"; echo "<br>"; #Usando o foreach... foreach ($precos as $indice => $valor) echo $indice.": R$ ".$valor."<br>"; Arrays Prof Silvano Oliveira (PHP - Arrays) 5 array3.php
  • 6.
     A funçãolist() pode ser útil para dividir um array em chave e valor.  Podemos separar dois dos valores que a função each() oferece: ▪ each - Retorna o par chave/valor corrente de um array e avança o seu cursor; Função list() Prof Silvano Oliveira (PHP - Arrays) 6
  • 7.
    array4.php $produtos = array("geladeira"=>1290); $produtos["fogão"]= 367; $produtos[2] = 100.21; $produtos[] = 39; /*Retrocede o ponteiro interno de array para o primeiro elemento*/ reset($produtos); while (list($descricao,$preco) = each($produtos)) echo "$descricao -> $preco <br/>"; Função list() Prof Silvano Oliveira (PHP - Arrays) 7
  • 8.
     Os elementossão ordenados do menor para o maior ao final da execução da função: array5.php $frutas = array("limao", "uva", "laranja", "banana", "melancia", "cupuaçu"); sort($frutas); foreach ($frutas as $chave => $valor) echo "frutas[".$chave."] = ".$valor."<br>"; Função sort() Prof Silvano Oliveira (PHP - Arrays) 8
  • 9.
     Os elementossão ordenados do maior para o menor ao final da execução da função: array6.php $frutas = array("limao", "uva", "laranja", "banana", "melancia", "cupuaçu"); rsort($frutas); foreach ($frutas as $chave => $valor) echo "frutas[".$chave."] = ".$valor."<br>"; Função rsort() Prof Silvano Oliveira (PHP - Arrays) 9
  • 10.
     Embaralha oselementos do array: array7.php $frutas = array("limao", "uva", "laranja", "banana", "melancia", "cupuaçu"); sort($frutas); shuffle($frutas); foreach ($frutas as $chave => $valor) echo "frutas[".$chave."] = ".$valor."<br>"; Função shuffle() Prof Silvano Oliveira (PHP - Arrays) 10
  • 11.
     Imprime oconteúdo do array passado por parâmetro: array8.php $frutas = array("limao", "uva", "laranja", "banana", "melancia", "cupuaçu"); print_r($frutas); Função print_r() Prof Silvano Oliveira (PHP - Arrays) 11
  • 12.
     Elimina umelemento de forma consistente. A eliminação pode ser de um elemento ou do vetor inteiro: array9.php $frutas = array("limao", "uva", "laranja", "banana"); unset($frutas[0]); print_r($frutas); unset($frutas); print_r($frutas); #Será gerado um erro. Por que? Função unset() Prof Silvano Oliveira (PHP - Arrays) 12
  • 13.
     Verifica seum valor existe no array: array10.php  Veja outras funções para arrays aqui: http://www.php.net/manual/pt_BR/ref.array.php $frutas = array("limao", "uva", "laranja", "banana", "melancia", "cupuaçu"); if (in_array("limao", $frutas)) echo "Fruta cadastrada!"; Função in_array() Prof Silvano Oliveira (PHP - Arrays) 13
  • 14.
     Os arraysnão são, necessariamente, uma lista simples de chaves e de valores;  Em cada uma de suas posições, pode ser armazenado um outro array, ou seja, podemos formar um array de arrays. Arrays multidimensionais ou Matrizes Prof Silvano Oliveira (PHP - Arrays) 14
  • 15.
    #Matriz identidade $matriz[0][0] =1; $matriz[0][1] = 0; $matriz[0][2] = 0; $matriz[1][0] = 0; $matriz[1][1] = 1; $matriz[1][2] = 0; $matriz[2][0] = 0; $matriz[2][1] = 0; $matriz[2][2] = 1; for ($linha = 0;$linha < sizeof($matriz);$linha++) { for ($coluna = 0;$coluna<count($matriz[$linha]);$coluna++) echo $matriz[$linha][$coluna]." "; echo "<br/>"; } Arrays multidimensionais Prof Silvano Oliveira (PHP - Arrays) 15 A função count é semelhante a sizeof array11.php
  • 16.
    array12.php $perfumes = array(array("FerrariBlack", 17,149.00), array("212 Men", 23, 259.00), array("Polo", 2, 128.75)); for ($linha = 0;$linha < sizeof($perfumes);$linha++) { for ($coluna =0;$coluna<count($perfumes[$linha]);$coluna++) echo $perfumes[$linha][$coluna]." "; echo "<br/>"; } Arrays multidimensionais Prof Silvano Oliveira (PHP - Arrays) 16
  • 17.
    Exercício 01 Criar 2arquivos em PHP: 1. Fazer um formulário que solicite o número máximo de um número par. (Envia.php) 2. Fazer um arquivo que receba a informação do envia.php e crie uma tabela com os números pares até o máximo enviado. Conforme o exemplo abaixo: (Recebe.php) Neste mesmo arquivo usar CSS no cabeçalho interno que mostre as linhas da tabela sólidas de borda 1px e pretas. Prof Silvano Oliveira (PHP - Arrays) 17 2 4 6 8 10 12 14
  • 18.
    Envia.php <body>  <fieldset>  <formaction="recebe.php" method="GET">  Nº Máximo do PAR:  <input type="text" name="nummax">  <br><br>  <input type="submit" value="Enviar">  </form>  </fieldset> </body> Prof Silvano Oliveira (PHP - Arrays) 18
  • 19.
    Recebe.php <head>  <title>Exercício PHP</title> <style>  table {  border-collapse: collapse;  }  td {  border: 1px solid black;  }  </style> </head> <body>  <?php  $nummax = $_GET["nummax"];  $par = range(2,$nummax,2);  $tam = count($par)-1;  echo "<table> <tr>";  for ($i = 0; $i <= $tam; $i++) {  echo "<td>$par[$i]</td>";  }  echo "</tr></table>";  ?> </body> Prof Silvano Oliveira (PHP - Arrays) 19
  • 20.
    Exercício 02 Modificando oarquivo do exercício anterior, recebe.php: Testar se o valor enviado é menor que 2, e se for, mostrar a mensagem: “OS DADOS SÃO INSUFICIENTES”. E do contrário montar a tabela como antes. Prof Silvano Oliveira (PHP - Arrays) 20
  • 21.
    Recebe.php (só aparte do body)  <body>  <?php  $nummax = $_GET["nummax"];  if ($nummax < 2) {  echo "DADOS INSUFICIENTES";  }  else {  $par = range(2,$nummax,2);  $tam = count($par)-1;  echo "<table> <tr>";  for ($i = 0; $i <= $tam; $i++) {  echo "<td>$par[$i]</td>";  }  echo "</tr></table>";  }  ?>  </body> Prof Silvano Oliveira (PHP - Arrays) 21
  • 22.
    Exercício 03 Modificando oarquivo do exercício anterior, envia.php: Montar o formulário como a figura: No recebe.php mostrar os números de acordo com a opção escolhida. E continuar a testar se o valor é menor que 2 para PAR e menor que 1 para ÍMPAR. Prof Silvano Oliveira (PHP - Arrays) 22