Matrizes agem atualmente como tabelas de 'hashing' (matrizes associativas) e matrizes indexadas (vetores).
O PHP suporta matrizes escalares e associativas. De fato, não há diferença entre as duas. Você pode criar uma matriz usando as funções list() ou array(), ou você pode setar cada valor dos elementos da matriz explicitamente.
Você também pode criar uma matriz simplesmente acrescentando valores à matriz. Quando você atribui um valor a uma variável de matriz usando colchetes vazios, o valor será acrescentado ao final da matriz.
As matrizes podem ser ordenadas usando-se as funções asort(), arsort(), ksort(), rsort(), sort(), uasort(), usort(), e uksort(), dependendo do tipo de ordenação que você quer.
Você pode contar o número de itens em uma matriz usando a função count().
Você pode atravessar uma matriz usando as funções next() e prev(). Uma outra maneira comum de atravessar uma matriz é com o uso da função each().
Matrizes multi-dimensionais são bem simples atualmente. Para cada dimensão da matriz, você acrescenta outro valor [chave] no final:
$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:
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:Em PHP4, porém, o problema todo pode ser acobertado englobando a referência da matriz (dentro da string) entre chaves:
Você pode "preencher" matrizes multidimensionais de muitas formas, mas a mais fácil de entender é como usar o comando array() para matrizes associativas. Estes dois trechos de código preenchem a matriz unidimensional da mesma forma:
# Exemplo 1: $a["cor"] = "vermelho"; $a["sabor"] = "doce"; $a["forma"] = "redondo"; $a["nome"] = "maçã"; $a[3] = 4; # Exemplo 2: $a = array( "cor" => "vermelho", "sabor" => "doce", "forma" => "redondo", "nome" => "maçã", 3 => 4 ); |
A função array() pode ser aninhada para matrizes multidimensionais:
<? $a = array( "maçã" => array( "cor" => "vermelho", "sabor" => "doce", "forma" => "redondo" ), "laranja" => array( "cor" => "laranja", "sabor" => "azedo", "forma" => "redondo" ), "banana" => array( "cor" => "amarelo", "sabor" => "pastoso", "forma" => "cilíndrico" ) ); echo $a["maçã"]["sabor"]; # imprimirá "doce" ?> |