Arrays
Os arrays ou matrizes são um grupo de variáveis que possuem
o mesmo nome. Porém, cada item deverá ter um índice.
A cada item deste array, chamaremos de elemento.
As Matrizes no PHP agem atualmente como tabelas de 'hashing' (matrizes
associativas) e matrizes indexadas (vetores).
Atribuindo e indexando valores
Indexação numérica - a indexação
numérica em PHP não precisa seguir uma ordem numérica;
é possível saltar algumas entradas;
$estado[0]
= "RS";
$estado[1]
= "SC";
$estado[2]
= "PR";
$estado[4]
= "SP"; Arrays Associativos - além
da indexação numérica, pode-se utilizar caracteres
para o mesmo fim;
$estado["rs"]
= "Rio Grande do Sul";
$estado["sc"]
= "Santa Catarina";
$estado["pr"]
= "Paraná";
Indexação automática - a utilização
dos colchetes vazios, indica ao PHP, que estamos lidando com variáveis
do tipo array;
$estado[]
= "RS";
$estado[]
= "SC";
$estado[]
= "PR";
$estado[]
= "SP";
O PHP se difere de muitas outras linguagens por dois motivos:
-
não é preciso predefinir o tipo de dado do array, i.e., se
o mesmo conterá números, texto, dentre outros tipos;
-
não é preciso especificar o tamanho do array antes que ele
seja criado;
Uma outra alternativa de realizar o preenchimento de arrays em PHP é
através da função array().
$estados
= array ("RS", "SC", "PR", "SP");
Utilizando-se esta notação, estaremos solicitando ao PHP
para gerar os
índices deste array automaticamente. Cabe salientar que o índice
começa em zero.
A função array também permite que seja possível
selecionar o índice com o qual se deseja começar o array.
O operador => proporciona
tal inicialização.
$estados
= array (1 =>"RS", "SC", "PR", "SP");
Pode-se também realizar uma indexação de um array
associativo, o qual deverá ser feito de forma individual.
$estados
= array ("rs" => "Rio Grande do Sul", "sc" => "Santa Catarina", "pr" =>
"Paraná");
Iteração em Arrays
Seqüenciais
for ($cont
= 0; cont <3 ; $cont) {
echo
"$estado[$cont]<br>";
}
Capital do Estado:
Classificação em Arrays
Há várias funções de classificação
proporcionadas pelo PHP. Estas, funcionam em conjunto com as funções
list
e each.
-
sort ( )
A função sort pega os conteúdos do array e os
classifica em ordem alfabética. Recebe como argumento um nome de
array.
<?php
$cd = array("Djavan","Caetano","Chico");
while (list($indice,
$conteudo) = each($cd))
echo "$indice -> $conteudo\n";
sort($cd);
while (list($indice,
$conteudo) = each($cd))
echo "$indice -> $conteudo\n";
?> |
Antes
0 -> Djavan
1 -> Caetano
2 -> Chico
Depois
0 -> Caetano
1 -> Chico
2 -> Djavan |
A função asort possui a "mesma" função
de sort, mas é comumente utilizada com arrays associativos,
porque após ela ter sido utilizada, não substitui os valores
dos índices de string por números. Ela também recebe
como argumento um nome de array. Verifique os exemplos abaixo:
<?php
$estados
= array ("rs" => "Rio Grande do Sul", "sc" => "Santa Catarina", "pr" =>
"Paraná");
while (list($indice,
$conteudo) = each($estados))
echo "$indice -> $conteudo\n";
sort($estados);
while (list($indice,
$conteudo) = each($estados))
echo "$indice -> $conteudo\n";
?> |
Antes
rs -> Rio
Grande do Sul
sc -> Santa
Catarina
pr -> Paraná
Depois
0 -> Paraná
1 -> Rio
Grande do Sul
2 -> Santa
Catarina |
<?php
$estados
= array ("rs" => "Rio Grande do Sul", "sc" => "Santa Catarina", "pr" =>
"Paraná");
while (list($indice,
$conteudo) = each($estados))
echo "$indice -> $conteudo\n";
asort($estados);
while (list($indice,
$conteudo) = each($estados))
echo "$indice -> $conteudo\n";
?> |
Antes
rs -> Rio
Grande do Sul
sc -> Santa
Catarina
pr -> Paraná
Depois
pr -> Paraná
rs -> Rio
Grande do Sul
sc -> Santa
Catarina |
-
rsort ( ) e arsort ( )
As funções rsort e arsort são similares
aos seus correspondentes, mas retornam os elemntos do array em ordem alfabética
inversa.
-
ksort ( )
A função ksort organiza normalemnte arrays associativos
em ordem alfabética de índices de string. Confira o exemplo:
<?php
$estados
= array ("rs" => "Rio Grande do Sul", "sc" => "Santa Catarina", "pr" =>
"Paraná");
while (list($indice,
$conteudo) = each($estados))
echo "$indice -> $conteudo\n";
ksort($estados);
while (list($indice,
$conteudo) = each($estados))
echo "$indice -> $conteudo\n";
?> |
Antes
rs -> Rio
Grande do Sul
sc -> Santa
Catarina
pr -> Paraná
Depois
pr -> Paraná
rs -> Rio
Grande do Sul
sc -> Santa
Catarina |
Arrays Multi-Dimensionais (fonte: Site oficial do
PHP)
Matrizes multi-dimensionais são bem simples atualmente. Para
cada dimensão da matriz, você acrescenta outro valor [chave]
no final. Veja os exemplos abaixo:
$a[1]
= $f;
# exemplos de uma dimensão
$a["foo"]
= $f;
$a[1][0]
= $f;
# duas dimensões
$a["foo"][2]
= $f;
# (você pode misturar índices numéricos e associativos)
$a[3]["bar"]
= $f;
# (você pode misturar índices numéricos e associativos)
$a["foo"][4]["bar"][0]
= $f; # quatro dimensões!
Em PHP3 não é possível referenciar matrizes
multidimensionais diretamente dentro de strings. Por exemplo, o que vem
a seguir não terá o resultado desejado:
$a[3]['bar']
= 'Bob';
echo
"Isto não vai funcionar: $a[3][bar]";
Em PHP3, o impresso acima será Isto não vai funcionar: Array[bar].
O operador de concatenação de string, porém, pode
ser usado para sobrepôr isto:
$a[3]['bar']
= 'Bob';
echo
"Isto não vai funcionar: " . $a[3][bar];
Em PHP4, porém, o problema todo pode ser acobertado englobando a
referência da matriz (dentro da string) entre chaves:
$a[3]['bar']
= 'Bob';
echo
"Isto vai funcionar: {$a[3][bar]}";.
|