tutoriais mais recente desenvolvimento web
 

PHP 5 matrizes multidimensionais


Anteriormente neste tutorial, nós descrevemos matrizes que são uma única lista de pares de chave / valor.

No entanto, às vezes você deseja armazenar valores com mais de uma chave.

Isso pode ser armazenados em arrays multidimensionais.


PHP - Multidimensional Arrays

Uma matriz multidimensional é uma matriz que contém uma ou mais matrizes.

PHP entende arrays multidimensionais que são duas, três, quatro, cinco, ou mais níveis de profundidade. No entanto, as matrizes mais de três níveis são profundamente difícil de gerir para a maioria das pessoas.

A dimensão de uma matriz indica o número de índices que você precisa para selecionar um elemento.

  • Para uma matriz bidimensional que você precisa dois índices para selecionar um elemento
  • Para uma matriz tridimensional você precisa de três índices para selecionar um elemento


PHP - matrizes bidimensionais

Uma matriz bidimensional é uma matriz de matrizes (a three-dimensional array is an array of arrays of arrays) .

Primeiro, dê uma olhada na tabela a seguir:

Nome estoque Vendido
Volvo 22 18
BMW 15 13
Saab 5 2
Land Rover 17 15

Podemos armazenar os dados da tabela acima em uma matriz bidimensional, como este:

$cars = array
  (
  array("Volvo",22,18),
  array("BMW",15,13),
  array("Saab",5,2),
  array("Land Rover",17,15)
  );

Agora, o array $ carros bidimensional contém quatro matrizes, e tem dois índices: linha e coluna.

Para ter acesso aos elementos do array $ carros que deve apontar para os dois índices (row and column) :

Exemplo

<?php
echo $cars[0][0].": In stock: ".$cars[0][1]." , sold: ".$cars[0][2]." .<br>";
echo $cars[1][0].": In stock: ".$cars[1][1]." , sold: ".$cars[1][2]." .<br>";
echo $cars[2][0].": In stock: ".$cars[2][1]." , sold: ".$cars[2][2]." .<br>";
echo $cars[3][0].": In stock: ".$cars[3][1]." , sold: ".$cars[3][2]." .<br>";
?>
Exemplo executar »

Podemos também colocar um loop dentro de outro loop para obter os elementos do array $ carros (we still have to point to the two indices) :

Exemplo

<?php
for ($row = 0; $row < 4; $row++) {
  echo "<p><b>Row number $row</b></p>";
  echo "<ul>";
  for ($col = 0; $col < 3; $col++) {
    echo "<li>" .$cars[$row][$col]."</li>";
  }
  echo "</ul>";
}
?>
Exemplo executar »