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çao Social |
Expendables | Açao Social |
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.