LabMM4 (T14 - 12/13) - Arrays

18
PHP: Arrays Carlos Santos LabMM 4 - NTC - DeCA - UA Aula 14, 11-04-2013

description

 

Transcript of LabMM4 (T14 - 12/13) - Arrays

Page 1: LabMM4 (T14 - 12/13) - Arrays

PHP: Arrays

Carlos SantosLabMM 4 - NTC - DeCA - UAAula 14, 11-04-2013

Page 2: LabMM4 (T14 - 12/13) - Arrays

Arrays em PHP

Um array é uma estrutura de dados que permite agrupar itens que partilham determinadas características -> é um agrupamento lógico de dados relacionados

Cada item agrupado distingue-se através dum identificador especial, a chave

Cada item possui dois componentes:

• chave que o identifica (pode ser igual à posição ocupada no array)• valor armazenado

Valor0 Valor1 Valor2 Valor3

[0] [1] [2] [3]

array

Page 3: LabMM4 (T14 - 12/13) - Arrays

Arrays: Declaração/criação e chaves

As chaves podem ser:

• numéricas -> as chaves não têm relação com os valores armazenados, indicando apenas a sua posição no array• $clubes = array(0 => “Sporting", 1 => “Porto“);echo $clubes[0];

• a posição inicial dos arrays de chave numérica em PHP é 0 (zero)

• associativas -> as chaves estão relacionadas logicamente com os valores armazenados• $clubes = array(“SCP" => “Sporting", “SCB" => “Braga“, “FCP” => “Porto”);echo $clubes[“SCP”];

Page 4: LabMM4 (T14 - 12/13) - Arrays

Arrays multidimentionais

Arrays multidimensionais (Arrays de Arrays)

• $tresgrandes = array(“SCP" => array (“Nome” => “Sporting“, “Estadio” => “Alvalade XXI”),“SCB" => array(“Nome“ => “Braga”, “Estadio” => “Municipal”),“FCP” => array(“Nome“ => “Porto”, “Estadio” => “Dragão”));

• $tresgrandes[“SCP”][“Estadio”] -> “Alvalade XXI”

Spor%ng Braga Porto

Alvalade  XXI Municipal Dragão

[Nome]

[Estadio]

[SCP] [SCB] [FCP]

Page 5: LabMM4 (T14 - 12/13) - Arrays

Arrays: Declaração por atribuição

Array com chave NUMÉRICA

• atribuição directa de valores ao array com a indicação da respectiva chave• $clubes[0] = “Sporting";$clubes[1] = “Braga";$clubes[2] = “Porto";

• se a chave for ascendente, pode ser omitida na criação!• $clubes[] = “Sporting";$clubes[] = “Braga";

Array com chave ASSOCIATIVA

• uma chave associativa nunca pode ser omitida na criação!• $feriados[“Natal”] = “25 dezembro”;$feriados[“AnoNovo”] = “1 janeiro”;

Page 6: LabMM4 (T14 - 12/13) - Arrays

Arrays: list()

Permite atribuir a variáveis, os valores armazenados num Array com chave numérica

• $info = array(‘café', ‘castanho', ‘cafeína');

• // Listar todas as variáveislist($drink, $color, $power) = $info;echo “O $drink é $color e a $power torna-o estimulante.";

• // Listar apenas algumaslist($drink, , $power) = $info;echo “O $drink tem $power.";

• // Mostrar apenas a terceiralist( , , $power) = $info;echo “Preciso $power!";

+info: http://pt2.php.net/manual/en/function.list.php)

$drink = $info[0];$color = $info[1];$power = $info[2];

Page 7: LabMM4 (T14 - 12/13) - Arrays

Arrays: Inserção e escrita de valores

Povoar um array com uma gama de valores

• $numeros = range(0,6);// idêntico a $numeros = array(0,1,2,3,4,5,6)

• $npares = range(0,20,2); //inc pode ser uma variável// $npares = array(0,2,4,6,8,10,12,14,16,18,20);

• $letras = range("A",“G");// $letras = array("A","B","C","D","E","F", "G");

Escrever o conteúdo de um array -> print_r()

• print_r($letras);

• print_r($npares);

Page 8: LabMM4 (T14 - 12/13) - Arrays

Arrays: Testar tipo de variáveis

Para testar se uma variável é um Array -> is_array()

• $cidades = array(“Lisboa“, “Aveiro”);$cidade = “Porto”;

printf("\$cidades é um array: %s",(is_array($cidades) ? “V" : "F"));

printf("\$cidade é um array: %s",(is_array($cidade) ? “V" : "F"));

-> “$cidades é um array: V”-> “$cidade é um array: F”

Page 9: LabMM4 (T14 - 12/13) - Arrays

Arrays: Métodos para adicionar valores

Ao início do Array -> array_unshift()

• $states = array("Ohio","New York");array_unshift($states,"California","Texas");

//$states -> array("California","Texas","Ohio","New York");

Ao final do Array -> array_push()

• $states = array("Ohio","New York");array_push($states,"California","Texas");

//$states -> array("Ohio","New York","California","Texas");

Page 10: LabMM4 (T14 - 12/13) - Arrays

Arrays: Métodos para remover valores

Ao início do Array -> array_shift()

• $states = array("Ohio","New York","California","Texas");$state = array_shift($states);

// $states -> array("New York","California","Texas")// $state -> "Ohio"

Ao final do Array -> array_pop()

• $states = array("Ohio","New York","California","Texas");$state = array_pop($states);

// $states -> array("Ohio", "New York", "California“)// $state -> "Texas"

Page 11: LabMM4 (T14 - 12/13) - Arrays

Arrays: Mais métodos

http://php.net/manual/en/ref.array.php

Page 12: LabMM4 (T14 - 12/13) - Arrays

Arrays: Pesquisas

Pesquisar um valor no Array -> in_array()

• retorna TRUE se encontrar o valor pesquisado e FALSE se não encontrar• $states = array("California", "Hawaii", "Ohio", "New York");

if(in_array("Ohio", $states)) {" echo “Encontrei!";} else {" echo “Não encontrei."}

Page 13: LabMM4 (T14 - 12/13) - Arrays

Arrays: Pesquisas

Pesquisar uma chave em Arrays associativos -> array_key_exists()

• $clubes[“SCP"] = “Sporting";$clubes[“SLB"] = “Benfica";$clubes[“FCP"] = “Porto";

if (array_key_exists(“SCP", $clubes)) { printf(“Encontrei o %s", $clubes[“SCP"]);}

Page 14: LabMM4 (T14 - 12/13) - Arrays

Arrays: Pesquisas

Pesquisar um valor em Arrays associativos -> array_search()

• $clubes[“SCP"] = “Sporting";$clubes[“SLB"] = “Benfica";$clubes[“FCP"] = “Porto";

$founded = array_search(“Porto", $clubes);if ($founded) { printf("%s foi encontrado.“, $clubes[$founded]);}

-> “Porto foi encontrado.”

Page 15: LabMM4 (T14 - 12/13) - Arrays

Arrays: Pesquisas

• $clubes[“SCP"] = “Sporting";$clubes[“SCB"] = “Braga";$clubes[“FCP"] = “Porto";

Retornar todas as chaves num Array -> array_keys()

• $keys = array_keys($clubes);print_r($keys);

Retornar todos os valores de um array -> array_values()

• $keys = array_values($clubes);print_r($keys);

Page 16: LabMM4 (T14 - 12/13) - Arrays

Arrays: Acesso por ponteiro

Retornar a chave de uma dada posição do Array -> key()

• $clubes = array("SCP" => "Alvalade", "FCP" => "Dragão");while ($chave = key($clubes)) { echo $chave . "<br />"; next($clubes);}

Retornar o valor armazenado numa dada posição do Array -> current()

• $clubes = array("SCP" => "Alvalade", "FCP" => "Dragão");while($estadio = current($clubes)) { echo $estadio . "<br />"; next($clubes);}

Page 17: LabMM4 (T14 - 12/13) - Arrays

Arrays: movimentação de ponteiro

Mover o ponteiro

• sendo $fruta um array• next($fruta) -> move ponteiro para a posição seguinte• prev($fruta) -> move ponteiro para a posição anterior

• $fruta = array(“maçã", “laranja", "banana“, “morango”);

• $frutas = next($fruta); // $fruta = “laranja"

• $frutas = next($fruta); // $fruta = "banana“

• $frutas = prev($fruta); // $fruta = “laranja"

“maçã” “laranja” “banana” “morango”

Page 18: LabMM4 (T14 - 12/13) - Arrays

Arrays: movimentação de ponteiro

Mover o ponteiro

• reset($fruta) -> move o ponteiro para a posição inicial do array• current($fruta) -> valor na posição actual do ponteiro• end($fruta) -> move ponteiro para a posição final do array

• $fruta = array(“maçã", “laranja", "banana“, “morango”);

• $frutas = current($fruits); // “maçã"

• $frutas = end($fruits); // “morango“

• $frutas = reset($fruits); // “maçã"

“maçã” “laranja” “banana” “morango”