Ícone do site Diego Macêdo

Arrays no PHP (Matriz)

Os arrays, ou então chamada de “matrizes” é um conjunto de dados ordenados. Servem para armazenar e recuperar qualquer tipo de dados, incluindo números, valores booleanos, strings, objetos e até mesmo outros arrays. Eles permitem o uso de chaves integer ou string.

O próprio PHP possue diversas funções que você pode manipular os arrays, possibilitando você a fazer praticamente tudo com eles, e mais um pouco.

Vejamos a sintaxe de um array:

array(  chave =>  valor
     , ...
     )
// chave pode ser tanto "string" ou um "integer"
// valor pode ser qualquer coisa

Exemplo: Valores das chaves como string

<?php
$dados = array('nome' => "Diego", 'sobrenome' => "Macêdo", 'funcao' => "Desenvolvedor Web", 'dia' => 20, 'mes' => 06);

print_r($dados);
?>

Exemplo: Valores das chaves como integer

<?php
$dados = array(1 => "Diego", 2 => "Macêdo", 3 => "Desenvolvedor Web", 4 => 20, 5 => 06);

print_r($dados);
?>

Por padrão, os valores das chaves são integer, ou seja, caso você crie um array, insira seus valores e não defina suas chaves, o array irá utilizar números inteiros de forma auto-incrementável. Veja o exemplo abaixo:

<?php
$numeros = array(1, 2, 3, 4, 5);
print_r($numeros);
?>

Caso você queira inserir mais um valor dentro do array que já foi criado anteriormente, você pode utilizar da seguinte forma:

<?php
$numeros = array(1, 2, 3, 4, 5);
print_r($numeros); // Irá imprimir os valores 1, 2, 3, 4, 5 da matriz com os seus respectivos índices

$numeros[] = 10; // Acrescenta o número 10 no array
$numeros[] = 18; // Acrescenta o número 18 no array
print_r($numeros); // Irá imprimir os valores 1, 2, 3, 4, 5, 10, 18 da matriz com os seus respectivos índices
?>

Agora que entendemos melhor sobre os índices, vou demonstrar como fazer algumas coisas com nossos arrays. Por exemplo, vamos criar um array e botar para exibir no documento um valor específico, chamando pelo seu índice.

Recuperando valor pelo seu índice

<?php
$dados = array('nome' => "Diego", 'sobrenome' => "Macêdo", 'funcao' => "Desenvolvedor Web", 'dia' => 20, 'mes' => 06);

echo "Nome: ".$dados['nome']." ".$dados['sobrenome']."<br />";
echo "Função: ".$dados['funcao']."<br />";
echo "Data: ".$dados['dia']."/".$dados['mes']."<br />";
?>

Sempre utilize aspas simples para determinar qual é o índice que você está querendo retornar. Caso você não utilize, irá funcionar, mas está ERRADO.

Aí você deve estar se perguntando “Mas se está errado, por que ele está exibindo o valor do índice mesmo assim?”. A resposta para isso está neste exemplo abaixo:

<?php
// Vamos ver todos os erros
error_reporting(E_ALL);

$arr = array('fruta' => 'maçã', 'legume' => 'cenoura');

// Correto
print $arr['fruta'];  // maçã
print $arr['legume']; // cenoura

// Errado. Isto funciona mas lança um erro PHP do
// nível E_NOTICE porque é utilizada uma constante indefinida (fruta)
//
// Repare: Quando utiliza-se a constrante indefinida fruta, o PHP assume 'fruta'
print $arr[fruta];    // maçã

// Agora vamos definir uma constante para demonstrar o que pode acontecer. Nós
// vamos assimilar o valor 'legume' para a constante de nome fruta
define('fruta', 'legume');

// Observe a diferenca agora
print $arr['fruit'];  // maçã
print $arr[fruit];    // cenoura

// O exemplo seguinte é normal dentro de uma string. Constantes não são
// observadas dentro de strings e por isso nenhum E-NOTICE não é lançado aqui
print "Olá $arr[fruta]";      // Olá maçã

// Com uma exceção: chaves envolvendo arrays dentro de strings
// ativam a checagem de constantes, como em
print "Olá {$arr[fruta]}";    // Hello cenoura
print "Olá {$arr['fruta']}";  // Hello maçã

// E isso não funciona, resultando em um erro de interpretação do tipo:
// Parse error: parse error, expecting T_STRING' or T_VARIABLE' or T_NUM_STRING'
// Isso se aplica ao uso de superglobais em strings
print "Olá $arr['fruta']";
print "Olá $_GET['foo']";

// Nesse caso, use concatenacao
print "Olá " . $arr['fruta']; // Olá maçã
?>

Funções de manipulação de Arrays no PHP

Espero que tenham gostado e façam um bom uso do que você aprendeu aqui.

Qualquer dúvida, postem um comentário ou então entre em contato comigo através da página de “Contato”. Grande abraço e bons estudos!

Sou bacharel em Sistemas de Informação pela Estácio de Sá (Alagoas), especialista em Gestão Estratégica da Tecnologia da Informação pela Univ. Gama Filho (UGF) e pós-graduando em Gestão da Segurança da Informação pela Univ. do Sul de Santa Catarina (UNISUL). Certificações que possuo: EC-Council CEH, CompTIA (Security+, CySA+ e Pentest+), EXIN (EHF e ISO 27001), MCSO, MCRM, ITIL v3. Tenho interesse por todas as áreas da informática, mas em especial em Gestão e Governança de TI, Segurança da Informação e Ethical Hacking.

Sair da versão mobile