Programação para a Internet II
2.6. PHP – Arrays
Nuno Miguel Gil Fonseca
[email protected]
PHP – Hypertext Preprocessor
Arrays
Em PHP um array é uma variável como as outras, no
entanto, tem a propriedade de poder conter outras
variáveis
Cada variável contida dentro de um array é designada
por “elemento”. Cada “elemento” é constituído por
uma chave e por um valor.
No caso mais simples, os arrays em PHP comportam-se
de forma semelhante às restantes linguagens… a forma
de aceder aos valores é através do índice da posição.
(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II
2
PHP – Hypertext Preprocessor
Arrays
Exemplos
<?php
$fruta = array("Maças", "Peras", "Bananas");
$fruta[1] = "Pêras";
print($fruta[1]);
?>
<?php
$fruta[0]
$fruta[1]
$fruta[2]
$fruta[1]
=
=
=
=
"Maças";
"Peras";
"Bananas";
"Pêras";
print($fruta[1]);
?>
(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II
3
PHP – Hypertext Preprocessor
Arrays
Arrays associativos
O que difere estes arrays dos restantes é o facto de se poder
aceder aos valores através de um nome (a chave)…
<?php
$fruta = array("a"=>"Macas", "b"=>"Laranjas", "c"=>"Bananas");
$fruta["a"] = "Maças";
print($fruta["a"]);
?>
<?php
$fruta["a"] = "Maças";
$fruta["b"] = "Laranjas";
$fruta["c"] = "Bananas";
print($fruta["a"]);
?>
(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II
4
PHP – Hypertext Preprocessor
Arrays (cont.)
As formas de iterar num array
<?php
$tamanho = count($array);
for ($i = 0; $i < $tamanho; $i++){
print($array[$i]);
}
?>
<?php
while (list($key, $val) = each($array)) {
print("$key is $val\n");
}
?>
(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II
5
PHP – Hypertext Preprocessor
Arrays (cont.)
As formas de iterar num array
<?php
foreach($array as $val) {
print($val);
}
?>
<?php
foreach ($array as $key => $val) {
print("$key = $val\n");
}
?>
(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II
6
PHP – Hypertext Preprocessor
Arrays (cont.)
Adicionar elementos ao array
<?php
$array1 = array("Fee");
$array1[] = "Foo";
$array1[] = "Bar";
$array1[] = "Baz";
var_dump($array1);
?>
<?php
$array1 = array("x" => "Fee");
$array1["a"] = "Foo";
$array1["b"] = "Bar";
$array1["c"] = "Baz";
print_r($array1);
?>
Nota: var_dump e print_r – Mostram o conteúdo de uma variável
(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II
7
PHP – Hypertext Preprocessor
Arrays (cont.)
Remover elementos do array
<?php
$array1 = array("Fee");
$array1[] = "Foo";
$array1[] = "Bar";
$array1[] = "Baz";
unset($array1[1]);
var_dump($array1);
?>
<?php
$array1 = array("x" => "Fee");
$array1["a"] = "Foo";
$array1["b"] = "Bar";
$array1["c"] = "Baz";
unset($array1["c"]);
print_r($array1);
?>
Nota: var_dump e print_r – Mostram o conteúdo de uma variável
(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II
8
PHP – Hypertext Preprocessor
Arrays (cont.)
Funções de manipulação de arrays
Devolver o número de elementos de um array
<?php
print(count($array));
?>
Eliminar elementos repetidos
<?php
$o_meu_array = array("AA", "BB", "CC", "BB");
$o_meu_array = array_unique($o_meu_array);
?>
(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II
9
PHP – Hypertext Preprocessor
Arrays (cont.)
Funções de manipulação de arrays (cont.)
Fazer o merge de arrays
<?php
$array1 = array("a", "b");
$array2 = array("c");
" "
$array3 = array_merge($array1, $array2);
?>
Intersecção de dois arrays
<?php
$array1 = array("a", "b");
$array2 = array("a");
$array3 = array_intersect($array1, $array2);
?>
(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II
10
PHP – Hypertext Preprocessor
Arrays (cont.)
Funções de manipulação de arrays (cont.)
Diferença entre arrays
<?php
$array1 = array("a", "b");
$array2 = array("b");
$array3 = array_diff($array1, $array2);
?>
Verificar se um elemento existe no array
<?php
$agulha = "aa";
$palheiro = array("aa", "bb");
$encontrou = (in_array($agulha, $palheiro)) ? "sim" : "não";
print($encontrou);
?>
(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II
11
PHP – Hypertext Preprocessor
Arrays (cont.)
Funções de manipulação de arrays (cont.)
Ordenação de elementos de um array
<?php
$array1 = array("c", "a", "b");
sort($array1);
?>
Ver o conteúdo de um array
<?php
$array1 = array("c", "a", "b");
print_r($array1);
?>
Array
(
[0] => "c"
[1] => "a"
[2] => "b"
)
(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II
12
PHP – Hypertext Preprocessor
Arrays (cont.)
Como obter lista das “chaves” de um array?
<?php
//$keys é um array indexado numericamente
$keys = array_keys($frutas);
?>
Arrays bidimensionais
<?php
$arrayb = array (
"frutas" => array("a"=>"laranja", "b"=>"banana", "c"=>"maçã"),
"numeros" => array(1, 2, 3, 4, 5, 6),
"buracos" => array("primeiro", 5 => "segundo", "terceiro")
);
print $arrayb["frutas"]["a"];
print $arrayb["numeros"][0];
?>
(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II
13
PHP – Hypertext Preprocessor
Arrays (cont.)
Indexação automática de arrays
<?php
$array = array(1, 1, 1, 1,
?>
1, 8 => 1,
Array
(
[0]
[1]
[2]
[3]
[4]
[8]
[9]
)
=>
=>
=>
=>
=>
=>
=>
4 => 1, 19, 3 => 13);
1
1
1
13
1
1
19
(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II
14
PHP – Hypertext Preprocessor
Arrays (cont.)
Lista completa de funções de manipulação de arrays
http://pt.php.net/array
(c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Programação para a Internet II
15
Download

2.6. PHP – Arrays - elearning@estgoh