Introdução a matrizes 2D em PHP

Uma matriz é uma coleção de elementos de qualquer tipo de dados. Existem muitos tipos de dados no php como string, número inteiro, booleano, array, objeto, recurso … etc. Uma matriz 2D é uma mistura desses tipos de dados principalmente a matriz. Existem três tipos diferentes de matrizes 2D no PHP, que são os seguintes:

  • Matriz numérica
  • Matriz associativa
  • Matriz multidimensional

Essas três matrizes são explicadas abaixo:

1. A matriz numérica: a matriz com um índice numérico.

Sintaxe :

array(value1, value2, value3, …);

Exemplo :

$input = array(10, 20, 30, 40, 50);

2. A matriz associativa : a matriz com índice de sequência ou número. Os elementos dessa matriz são armazenados na forma de um par de valores-chave.

Sintaxe :

array('key1' => 'value1', 'key2' => 'value2', 'key3' => 'value3', …);

Exemplo :

$input = array(0 =>Emma, 1=>Alice, 2=>'John');

3. A matriz multidimensional : A matriz de uma matriz é a matriz multidimensional ou uma matriz 2D ou uma matriz aninhada. Este formato é sempre uma matriz ou matriz. E assim chamado de matriz aninhada.

Sintaxe:

array (
array (elements…),
array (elements…),

)

Exemplo:

$input = array(
array( "red", "green", "blue" ),
array( "yellow", "black", "white" )
);

No exemplo acima, a matriz de entrada é um exemplo de uma matriz bidimensional. Aqui, a matriz principal contém 2 elementos em que cada elemento é ele próprio uma matriz de 3 elementos.

Como definir matrizes 2D?

Aprendemos que no array 2D o elemento value é um array que ainda pode ter sub-arrays. As dimensões mencionadas em uma matriz estão na forma de linhas e colunas. Tendo em mente o formato tabular da matriz, é mais fácil aprender a definir essas matrizes. Significando que, se for uma matriz bidimensional, serão utilizados dois índices; da mesma forma, se for uma matriz tridimensional, serão utilizados três índices e assim por diante.

Como criar matrizes 2D?

Como sabemos como definir uma matriz 2D, podemos criá-la agora. Aqui o índice não está definido e, por padrão, é um número que sempre começa com 0.

$input=array(
array( "red", "green", "blue" ),
array( "yellow", "black", "white" )
);

A matriz também pode ser definida na forma da matriz associativa.

(in key =>value form)

O índice ou a chave é uma sequência como cores, frutas e carros. Os elementos de valor estão na forma de uma matriz contendo 3 elementos cada.

$input = array(
'colors'=>array (“Red", "Green", "Blue"),
'fruits'=>array ("Apple", "Orange", "Grapes"),
'cars'=>array (“BMW”, ”Skoda”, ”Mercedes”)
);

Como acessar elementos de matrizes 2D?

Para acessar esses valores de matriz, você pode usar colchetes. À medida que você se aprofundar em mais níveis da matriz 2D, o uso do conjunto de colchetes aumentará a cada nível.

Exemplo 1

$input = array (
'colors' =>array (“Red", "Green", "Blue"),
'fruits' =>array ("Apple", "Orange", "Grapes"),
'cars' =>array ("Skoda", "BMW", "Mercedes")
);

Lembre-se de que o primeiro conjunto de colchetes contém a chave que, neste caso, são cores, frutas, carros. Seguido por mais um conjunto de colchetes para descer o próximo nível e pode ser acessado com números como 0, 1, 2.

Portanto, se queremos acessar o elemento "Grapes" na matriz acima,

echo $input('fruits')(2);

Da mesma forma, os seguintes exemplos

Se quisermos acessar o elemento "Mercedes" na matriz, então

echo $input('cars')(2);

Se quisermos acessar o elemento "Red" na matriz, então

echo $input('colors)(0);

Como o índice sempre começa com 0 em uma matriz.

Exemplo 2

$input = array (
array (“Red", "Green", "Blue"),
array ("Yellow", "Orange", "Purple"),
);

Se quisermos acessar o elemento "Orange" na matriz acima, usaremos a seguinte linha

echo $input(0)(1);
will give “Green”
echo $input(1)(2);
will give “Purple”
echo $input(0)(0);
will give “Red”

Como inserir elementos de matrizes 2D em PHP?

Como sabemos como definir, criar e acessar elementos da matriz, aprenderemos agora como inserir elementos na matriz. Existem funções de matriz definidas no PHP para trabalhar com matrizes multidimensionais, como a função array_push () a ser inserida, a função array_shift () a ser removida e assim por diante.

$input = array (
'colors'=>array (“Red", "Green", "Blue"),
'fruits'=>array ("Apple", "Orange", "Grapes"),
'cars'=>array ("Skoda", "BMW", "Mercedes")
);

Usando a função print_r (), imprimiremos o array primeiro como está.

Código:

//create multidimensional array
$input = array (
"colors"=>array ("Red", "Green", "Blue"),
"fruits"=>array ("Apple", "Orange", "Grapes"),
"cars"=>array ("Skoda", "BMW", "Mercedes")
);
// print the multidimensional array
echo "

 ";
print_r ($ input);
eco "
 ";

Resultado:

Agora, para adicionar um elemento ao sub array de frutas, usaremos

array_push() function

Sintaxe:

array_push(array, value1, value2…)

Onde,

  • A matriz é a matriz $ input
  • value1 é o elemento a ser adicionado à matriz
  • value2, value3, são opcionais

Exemplo 1

Código:

$input = array (
"colors"=>array ("Red", "Green", "Blue"),
"fruits"=>array ("Apple", "Orange", "Grapes"),
"cars"=>array ("Skoda", "BMW", "Mercedes")
);
array_push($input('colors'), "Black");
echo "

 ";
print_r ($ input);
eco "
 ";

Resultado:

No programa abaixo, apenas removemos a chave “cores” e descobrimos que ela anexa ao último da matriz fornecida com uma tecla 0, como mostrado na imagem de saída.

Exemplo 2

Código:

// create multidimensional array
$input = array (
"colors"=>array ("Red", "Green", "Blue"),
"fruits"=>array ("Apple", "Orange", "Grapes"),
"cars"=>array ("Skoda", "BMW", "Mercedes")
);
// adding a value to array
array_push($input, "Black");
// print the multidimensional array
echo "

 ";
print_r ($ input);
eco "
 ";

Resultado:

Exemplo 3

Código:

//create multidimensional array
$input = array (
array ("Red", "Green", "Blue"),
array ("Yellow", "Orange", "Purple")
);
//add a color to the array
array_push($input, "Black");
// print the multidimensional array
echo "

 ";
print_r ($ input);
eco "
 ";

Resultado:

Como atualizar elementos de matrizes 2D em PHP?

Para atualizar um elemento da matriz 2D, basta obter a chave da matriz e substituir o valor dessa chave em uma matriz específica.

$input('cars')('Mercedes') = 'Duster';

Exemplo 1

Código:

//create multidimensional array
$input = array (
"colors"=>array ("Red", "Green", "Blue"),
"fruits"=>array ("Apple", "Orange", "Grapes"),
"cars"=>array ("Skoda", "BMW", "Mercedes")
);
//update the Mercedes with Duster
$input("cars")(2) = "Duster";
// print the multidimensional array
echo "

 ";
print_r ($ input);
eco "
 ";

Resultado:

Exemplo 2

Código:

//create multidimensional array
$input = array (
array ("Red", "Green", "Blue"),
array ("Yellow", "Orange", "Purple")
);
//update the Mercedes with Duster
$input(0)(1) = "White";
// print the multidimensional array
echo "

 ";
print_r ($ input);
eco "
 ";

Resultado:

Como excluir elementos de matrizes 2D?

Para excluir um elemento da matriz 2D, usaremos a função array_shift ().

array_shift remove e retorna o primeiro valor do elemento da matriz.

Sintaxe:

array_shift(array)
where
-array is the $input array

Exemplo 1

Código:

//create multidimensional array
$input = array (
"colors"=>array ("Red", "Green", "Blue"),
"fruits"=>array ("Apple", "Orange", "Grapes"),
"cars"=>array ("Skoda", "BMW", "Mercedes")
);
//print the removed element
print_r(array_shift($input));

Resultado:

Exemplo 2

Código:

//create multidimensional array
$input = array (
array ("Red", "Green", "Blue"),
array ("Yellow", "Orange", "Purple")
);
//print the removed element
print_r(array_shift($input));

Resultado:

Bidimensional em Matriz Associativa

No exemplo a seguir, criamos uma matriz bidimensional que contém as informações de livros como o autor do livro, o tipo de livro e publicado no ano. Além disso, aprenderemos como percorrer ou fazer um loop através dessa matriz. Fazendo um loop pela matriz multidimensional, usaremos um loop foreach aninhado. Significa um loop foreach dentro de outro loop foreach. O mesmo também pode ser feito usando o loop for.

$input = array(
"The_Alchemist" => array (
"author" => "Paulo Coelho",
"type" => "Fiction",
"published_year" => 1988
),
"Managing_Oneself" => array (
"author" => "Peter Drucker",
"type" => "Non-fiction",
"published_year" => 1999
),
"Measuring_the_World" => array(
"author" => "Daniel Kehlmann",
"type" => "Fiction",
"published_year" => 2005
)
);

Apenas imprimir a matriz acima sem nenhum loop fornecerá a seguinte saída:

Código:

// create multidimensional array
$input = array(
"The_Alchemist" => array (
"author" => "Paulo Coelho",
"type" => "Fiction",
"published_year" => 1988
),
"Managing_Oneself" => array (
"author" => "Peter Drucker",
"type" => "Non-fiction",
"published_year" => 1999
),
"Measuring_the_World" => array(
"author" => "Daniel Kehlmann",
"type" => "Fiction",
"published_year" => 2005
)
);
// print the plain multidimensional array
echo "

 ";
print_r ($ input);
eco "
";

Resultado:

Agora, imprimiremos a matriz multidimensional usando um loop foreach.

Código:

// create multidimensional array
$input = array(
"The_Alchemist" => array (
"author" => "Paulo Coelho",
"type" => "Fiction",
"published_year" => 1988
),
"Managing_Oneself" => array (
"author" => "Peter Drucker",
"type" => "Non-fiction",
"published_year" => 1999
),
"Measuring_the_World" => array(
"author" => "Daniel Kehlmann",
"type" => "Fiction",
"published_year" => 2005
)
);
//foreach to loop the outer array
foreach($input as $book) (
echo "
";
// foreach to loop the inner array
foreach($book as $key=>$value)
(
echo $key." ". $value. "
";
)
)

Resultado:

Conclusão

Espero que este artigo seja útil para aprender os conceitos do tópico em uma matriz 2D em PHP. Este tópico aborda todos os conceitos necessários para o entendimento relacionado à matriz 2D no PHP. Este tópico é simplificado com a ajuda de exemplos com as capturas instantâneas de saída a que se refere. Segundo o artigo, se todos os programas forem bem praticados, certamente o ajudará a entender os conceitos facilmente. Espero que o tópico seja mais informativo para obter mais conhecimento.

Artigos recomendados

Este é um guia para matrizes 2D em PHP. Aqui discutimos os três tipos diferentes de array em php e Como atualizar, inserir e excluir elementos de matrizes 2D com exemplos apropriados. Você também pode consultar o seguinte artigo.

  1. For Loop em PHP
  2. Trocando em PHP
  3. Padrões de estrelas em PHP
  4. Constantes PHP
  5. Guia para diferentes tipos de dados C #