Um array é uma estrutura de dados que permite agrupar itens relacionados, onde cada item é identificado por uma chave e possui um valor. Arrays podem ter chaves numéricas ou associativas e serem unidimensionais ou multidimensionais. Existem vários métodos para adicionar, remover e acessar valores em arrays.
2. 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
array Valor0 Valor1 Valor2 Valor3
[0] [1] [2] [3]
3. 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”];
5. 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”;
6. Arrays: list()
Permite atribuir a variáveis, os valores armazenados num Array com chave
numérica
• $info = array(‘café', ‘castanho', ‘cafeína');
$drink = $info[0];
• // Listar todas as variáveis $color = $info[1];
list($drink, $color, $power) = $info; $power = $info[2];
echo “O $drink é $color e a $power torna-o estimulante.";
• // Listar apenas algumas
list($drink, , $power) = $info;
echo “O $drink tem $power.";
• // Mostrar apenas a terceira
list( , , $power) = $info;
echo “Preciso $power!";
+info: http://pt2.php.net/manual/en/function.list.php)
7. 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);
8. 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”
9. 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");
10. 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"
12. 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."
}
13. 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"]);
}
14. 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.”
15. 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);
16. 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);
}
17. Arrays: movimentação de ponteiro
Mover o ponteiro
“maçã” “laranja” “banana” “morango”
• 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"
18. Arrays: movimentação de ponteiro
Mover o ponteiro
“maçã” “laranja” “banana” “morango”
• 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çã"