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,
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,
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,
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.



