Arrays multidimensionais em PHP

Os arrays multidimensionais do PHP contêm um ou mais arrays como elementos. Cada elemento do array é ele mesmo um array.

O PHP fornece uma maneira de armazenar e gerenciar estruturas de dados complexas por meio do uso de matrizes multidimensionais.

Neste artigo, vamos explorar o conceito de arrays multidimensionais do PHP com exemplos em detalhes. Além disso, discutiremos como criá-los, como adicionar e remover elementos deles e como editar os dados contidos neles.



Arrays multidimensionais do PHP

Uma matriz multidimensional PHP pode ter dois, três, quatro, cinco ou mais níveis de profundidade, dependendo do número de níveis na matriz. No entanto, a maioria das pessoas não consegue gerenciar matrizes com mais de três níveis de profundidade.

A dimensão de um array ajuda a determinar quantos índices serão necessários para localizar um elemento no array.

São necessários dois índices para que um elemento seja selecionado em uma matriz bidimensional.

Existem três índices que precisam ser definidos para arrays multidimensionais do PHP para selecionar um elemento do array.

Vamos começar observando a tabela abaixo:

frutas Estoque Vendido
Maçã 35 22
Banana 15 10
manga 48 35
Uvas 22 15

Se quisermos armazenar os dados em uma matriz bidimensional, podemos fazer isso da seguinte maneira com as matrizes multidimensionais do PHP:

$fruits = array(
array("Apple",35,22),
array("Banana",15,10),
array("Mango",48,35),
array("Grapes",22,15)
);

Existem quatro arrays no array bidimensional $fruits, e cada array tem dois índices: linha e coluna.

Para acessar os elementos do array $fruits, precisamos nos referir aos dois índices (linha e coluna) da seguinte forma:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$fruits = array(
array("Apple",35,22),
array("Banana",15,10),
array("Mango",48,35),
array("Grapes",22,15)
);
echo $fruits[0][0].": In stock: ".$fruits[0][1].", sold: ".$fruits[0][2]."<br>";
echo $fruits[1][0].": In stock: ".$fruits[1][1].", sold: ".$fruits[1][2]."<br>";
echo $fruits[2][0].": In stock: ".$fruits[2][1].", sold: ".$fruits[2][2]."<br>";
echo $fruits[3][0].": In stock: ".$fruits[3][1].", sold: ".$fruits[3][2]."<br>";
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
O mesmo pode ser feito colocando um loop for dentro de outro loop for, que nos fornecerá os elementos do array $frutas(ainda devemos apontar para os dois índices):
Exemplo: 

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$fruits = array(
array("Apple",35,22),
array("Banana",15,10),
array("Mango",48,35),
array("Grapes",22,15)
);
for ($a = 0; $a < 4; $a++) {
echo "<p><b>Data Row: $a</b></p>";
echo "<ul>";
for ($b = 0; $b < 3; $b++) {
echo "<li>".$fruits[$a][$b]."</li>";
}
echo "</ul>";
}
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Para melhor entendimento vamos criar um array multidimensional em um único exemplo:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
$user = array(
array("Ben","Strokes","04/06/1991"),
array("Jos","Buttler","08/09/1990"),
array("Tom","Abell","05/03/1994"),
array("Moeen","Ali","18/06/1987"),
array("James","Anderson","30/07/1982"),
array("Jofra","Archer ","01/04/1995"),
array("Jonny","Bairstow ","01/04/1995"),
array("Stuart","Broad ","24/06/1986"),
);
echo "England Cricket Players";
for ($a = 0; $a < 8; $a++) {
echo "<p><b>Player: $a</b></p>";
echo "<ul>";
for ($b = 0; $b < 3; $b++) {
echo "<li>".$user[$a][$b]."</li>";
}
echo "</ul>";
}
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Exemplo de Explicação

Acima está um exemplo de array multidimensional PHP, onde $user array é um array bidimensional que armazena os nomes e datas de nascimento de vários jogadores de críquete da Inglaterra.

A primeira dimensão da matriz representa cada jogador e a segunda dimensão representa as informações do jogador, que são armazenadas como uma matriz de três elementos: o primeiro nome, o sobrenome e a data de nascimento do jogador.

O loop for é usado para percorrer o array e exibir informações sobre cada jogador.

O loop itera 8 vezes, o que corresponde ao número de jogadores na matriz.

Para cada jogador, o loop imprime um cabeçalho indicando o número do jogador e então cria uma lista não ordenada para exibir as informações do jogador.

O loop for interno itera 3 vezes, o que corresponde ao número de elementos na matriz de informações do jogador.

Para cada elemento, o loop imprime um item de lista com as informações correspondentes. Por fim, o loop fecha a tag de lista não ordenada.

A saída do código é uma lista dos jogadores de críquete da Inglaterra com seu primeiro nome, sobrenome e data de nascimento exibidos de maneira ordenada.

Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone