Matriz PHP: Associativa, Multidimensional

O que รฉ uma matriz PHP?

Um array PHP รฉ uma variรกvel que armazena mais de um dado relacionado em uma รบnica variรกvel.

Pense em uma matriz como uma caixa de chocolates com ranhuras dentro.

A caixa representa o prรณprio array enquanto os espaรงos contendo chocolates representam os valores armazenados nos arrays.

O diagrama abaixo ilustra a sintaxe acima.

Matrizes Numรฉricas

Matrizes numรฉricas usam nรบmeros como chaves de acesso.

Uma chave de acesso รฉ uma referรชncia a um slot de memรณria em uma variรกvel de array.

A chave de acesso รฉ usada sempre que queremos ler ou atribuir um novo valor a um elemento do array.

Abaixo estรก a sintaxe para criar array numรฉrico em php.

Exemplo de matriz

<?php
$variable_name[n] = value;
?>

Or

<?php
$variable_name = array(n => value, โ€ฆ);
?>

AQUI,

  • โ€œ$variable_nameโ€ฆโ€ รฉ o nome da variรกvel
  • โ€œ[n]โ€ รฉ o nรบmero do รญndice de acesso do elemento
  • โ€œvalorโ€ รฉ o valor atribuรญdo ao elemento da matriz.

Vejamos agora um exemplo de array numรฉrico.

Suponha que temos 5 filmes que queremos armazenar em variรกveis โ€‹โ€‹de array.

Podemos usar o exemplo mostrado abaixo para fazer isso.

<?php

$movie[0] = 'Shaolin Monk';
$movie[1] = 'Drunken Master';
$movie[2] = 'American Ninja';
$movie[3] = 'Once upon a time in China';
$movie[4] = 'Replacement Killers';

?>

Aqui,

Matriz PHP

Cada filme recebe um nรบmero de รญndice que รฉ usado para recuperar ou modificar seu valor. Observe o seguinte cรณdigo-

<?php
$movie[0]="Shaolin Monk";
$movie[1]="Drunken Master";
$movie[2]="American Ninja";
$movie[3]="Once upon a time in China";
$movie[4]="Replacement Killers";
echo $movie[3];
$movie[3] = " Eastern Condors";
echo $movie[3];
?>

Saรญda:

Once upon a time in China Eastern Condors

Como vocรช pode ver nos exemplos acima, trabalhar com arrays em PHP ao lidar com mรบltiplos valores da mesma natureza รฉ muito fรกcil e flexรญvel.

Alternativamente, as variรกveis โ€‹โ€‹de array acima tambรฉm podem ser criadas usando o cรณdigo a seguir.

<?php
$movie = array(0 => "Shaolin Monk",
               1 => "Drunken Master",
               2 => "American Ninja",
               3 => "Once upon a time in China",
               4 =>"Replacement Killers" );
echo $movie[4];
?>

Saรญda:

Replacement Killers

Matriz Associativa PHP

A matriz associativa difere da matriz numรฉrica no sentido de que as matrizes associativas usam nomes descritivos para chaves de identificaรงรฃo.

Abaixo estรก a sintaxe para criar array associativo em php.

<?php
$variable_name['key_name'] = value;

$variable_name = array('keyname' => value);
?>

AQUI,

  • โ€œ$variable_nameโ€ฆโ€ รฉ o nome da variรกvel
  • โ€œ['key_name']โ€ รฉ o nรบmero do รญndice de acesso do elemento
  • โ€œvalorโ€ รฉ o valor atribuรญdo ao elemento da matriz.

Suponhamos que temos um grupo de pessoas e queremos atribuir o gรชnero de cada pessoa em relaรงรฃo aos seus nomes.

Podemos usar um array associativo para fazer isso. O cรณdigo abaixo nos ajuda a fazer isso.

<?php
$persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female");
print_r($persons); 
echo ""; 
echo "Mary is a " . $persons["Mary"];
?>

AQUI,

Matriz PHP

Saรญda:

Array ( [Mary] => Female [John] => Male [Mirriam] => Female ) Mary is a Female

Matrizes associativas tambรฉm sรฃo muito รบteis ao recuperar dados do banco de dados.

Os nomes dos campos sรฃo usados โ€‹โ€‹como chaves de identificaรงรฃo.

Matrizes multidimensionais PHP

Estas sรฃo matrizes que contรชm outras matrizes aninhadas.

A vantagem dos arrays multidimensionais รฉ que eles nos permitem agrupar dados relacionados.

Vejamos agora um exemplo prรกtico que implementa um array multidimensional em php.

A tabela abaixo mostra uma lista de filmes por categoria.

Tรญtulo do filme Categoria
Pink Panther Comรฉdia
John Inglรชs Comรฉdia
Die Hard Aรงรฃo
Expendables Aรงรฃo
O senhor dos Anรฉis ร‰pico
Romeu e Julieta Romance
Nรฃo veja nenhum mal, nรฃo ouรงa nenhum mal Comรฉdia

As informaรงรตes acima podem ser representadas como uma matriz multidimensional. O cรณdigo abaixo mostra a implementaรงรฃo.

<?php
$movies =array(
"comedy" => array("Pink Panther", "John English", "See no evil hear no evil"),
"action" => array("Die Hard", "Expendables"),
"epic" => array("The Lord of the rings"),
"Romance" => array("Romeo and Juliet")
);
print_r($movies);
?>

AQUI,

Matriz PHP

Saรญda:

Array ( [comedy] => Array ( [0] => Pink Panther [1] => John English [2] => See no evil hear no evil ) [action] => Array ( [0] => Die Hard [1] => Expendables ) [epic] => Array ( [0] => The Lord of the rings ) [Romance] => Array ( [0] => Romeo and Juliet ) )

Outra maneira de definir o mesmo array รฉ a seguinte

<?php
$film=array(

                "comedy" => array(

                                0 => "Pink Panther",

                                1 => "john English",

                                2 => "See no evil hear no evil"

                                ),

                "action" => array (

                                0 => "Die Hard",

                                1 => "Expendables"

                                ),

                "epic" => array (

                                0 => "The Lord of the rings"

                                ),

                "Romance" => array

                                (

                                0 => "Romeo and Juliet"

                                )

);
echo $film["comedy"][0];
?>

Saรญda:

Pink Panther

Nota: a matriz numรฉrica de filmes foi aninhada dentro da matriz associativa de categorias

Matrizes PHP: Operatoros

Operator Nome Descriรงรฃo Como fazer isso saรญda
x+y Uniรฃo Combina elementos de ambas as matrizes
<?php
$x = array('id' => 1);

$y = array('value' => 10);

$z = $x + $y;
?>
Matriz([id] => 1 [valor] => 10)
X == y Igual Compara duas matrizes se forem iguais e retorna verdadeiro se sim.
<?php
$x = array("id" => 1);

$y = array("id" => "1");

if($x == $y)
{
echo "true";
}
else
{
echo "false";

}
?>
Verdadeiro ou 1
X === y Idรชntico Compara os valores e tipos de dados
<?php
$x = array("id" => 1);

$y = array("id" => "1");

if($x === $y)
{
echo "true";
}
else
{
echo "false";
}
?>
Falso ou 0
X! = y, x <> y Nรฃo igual
<?php
$x = array("id" => 1);

$y = array("id" => "1");

if($x != $y)
{
echo "true";
}
else
{
echo "false";
}
?>
Falso ou 0
X! == y Nรฃo idรชnticos
<?php
$x = array("id" => 1);

$y = array("id" => "1");

if($x !== $y)
{
echo "true";
}
else
{
echo "false";
}
?>
Verdadeiro ou 1

Funรงรตes de array PHP

funรงรฃo de contagem

A funรงรฃo count รฉ usada para contar o nรบmero de elementos que um array php contรฉm. O cรณdigo abaixo mostra a implementaรงรฃo.

<?php
$lecturers = array("Mr. Jones", "Mr. Banda", "Mrs. Smith");
echo count($lecturers);
?>

Saรญda:

3

funรงรฃo is_array

A funรงรฃo is_array รฉ usada para determinar se uma variรกvel รฉ um array ou nรฃo. Vejamos agora um exemplo que implementa as funรงรตes is_array.

<?php
$lecturers = array("Mr. Jones", "Mr. Banda", "Mrs. Smith");
echo is_array($lecturers);
?>

Saรญda:

1

tipo

Esta funรงรฃo รฉ usada para classificar arrays pelos valores.

Se os valores forem alfanumรฉricos, ele os classifica em ordem alfabรฉtica.

Se os valores forem numรฉricos, ele os classifica em ordem crescente.

Remove as chaves de acesso existentes e adiciona novas chaves numรฉricas.

A saรญda desta funรงรฃo รฉ um array numรฉrico

<?php
$persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female");

sort($persons);

print_r($persons);
?>

Saรญda:

Array ( [0] => Female [1] => Female [2] => Male )

ksort

Esta funรงรฃo รฉ usada para classificar o array usando a chave. O exemplo a seguir ilustra seu uso.

<?php
$persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female");

ksort($persons);

print_r($persons);
?>

Saรญda:

Array ( [John] => Male [Mary] => Female [Mirriam] => Female )

sortimento

Este funรงรฃo รฉ usado para classificar a matriz usando os valores. O exemplo a seguir ilustra seu uso.

<?php

$persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female");

asort($persons);

print_r($persons);

?>

Saรญda:

Array ( [Mary] => Female [Mirriam] => Female [John] => Male )

Por que usar matrizes?

  • O conteรบdo dos arrays pode ser esticado,
  • Matrizes ajudam facilmente a agrupar informaรงรตes relacionadas, como detalhes de login do servidor
  • Matrizes ajudam a escrever um cรณdigo mais limpo.

Resumo

  • Matrizes sรฃo variรกveis โ€‹โ€‹especiais com capacidade de armazenar mรบltiplos valores.
  • Matrizes sรฃo flexรญveis e podem ser facilmente ampliadas para acomodar mais valores
  • Matrizes numรฉricas usam nรบmeros para as chaves da matriz
  • Matriz associativa PHP usa nomes descritivos para chaves de matriz
  • Matrizes multidimensionais contรชm outras matrizes dentro delas.
  • A funรงรฃo count รฉ usada para obter o nรบmero de itens que foram armazenados em um array
  • A funรงรฃo is_array รฉ usada para determinar se uma variรกvel รฉ um array vรกlido ou nรฃo.
  • Outras funรงรตes de array incluem sort, ksort, assort etc.

Resuma esta postagem com: