PHP

Arrays em PHP: Indexados, Associativos e Multidimensionais: Do Básico ao Avançado

8 min de leitura

Arrays em PHP: Indexados, Associativos e Multidimensionais: Do Básico ao Avançado

Arrays Indexados Arrays indexados são a forma mais básica de estrutura de dados em PHP. Eles utilizam números inteiros como chaves, começando automaticamente do índice 0. Essa é a representação clássica de um array, semelhante a listas em outras linguagens de programação. Operações Comuns As operações mais frequentes incluem adicionar, remover e contar elementos. Use para obter o tamanho, para adicionar múltiplos elementos e para remover do final. A função verifica se um valor existe no array. Arrays Associativos Arrays associativos usam chaves nomeadas (strings) em vez de índices numéricos. Isso os torna ideais para representar dados estruturados, como registros de banco de dados ou configurações. Manipulação de Chaves e Valores Funções como retornam todas as chaves, retorna apenas os valores, e combina arrays. Para remover uma chave específica, use . A função é mais segura que quando a chave pode ter valor null. Arrays Multidimensionais Arrays multidimensionais são arrays que contêm outros arrays como valores. Eles simulam matrizes ou

<h2>Arrays Indexados</h2>

<p>Arrays indexados são a forma mais básica de estrutura de dados em PHP. Eles utilizam números inteiros como chaves, começando automaticamente do índice 0. Essa é a representação clássica de um array, semelhante a listas em outras linguagens de programação.</p>

<pre><code class="language-php">&lt;?php

// Declaração usando colchetes

$frutas = [&#039;Maçã&#039;, &#039;Banana&#039;, &#039;Laranja&#039;];

// Ou usando array()

$numeros = array(10, 20, 30, 40);

// Acessando elementos

echo $frutas[0]; // Output: Maçã

echo $frutas[2]; // Output: Laranja

// Adicionando novos elementos

$frutas[] = &#039;Melancia&#039;; // Adiciona no próximo índice disponível

$frutas[10] = &#039;Uva&#039;; // Define em posição específica

// Iterando com foreach

foreach ($frutas as $fruta) {

echo $fruta . &quot;\n&quot;;

}

// Iterando com índice

foreach ($frutas as $indice =&gt; $fruta) {

echo &quot;[$indice] =&gt; $fruta\n&quot;;

}

?&gt;</code></pre>

<h3>Operações Comuns</h3>

<p>As operações mais frequentes incluem adicionar, remover e contar elementos. Use <code>count()</code> para obter o tamanho, <code>array_push()</code> para adicionar múltiplos elementos e <code>array_pop()</code> para remover do final. A função <code>in_array()</code> verifica se um valor existe no array.</p>

<pre><code class="language-php">&lt;?php

$cores = [&#039;Vermelho&#039;, &#039;Azul&#039;];

// Adicionar elementos

array_push($cores, &#039;Verde&#039;, &#039;Amarelo&#039;);

echo count($cores); // Output: 4

// Remover último elemento

$ultima = array_pop($cores); // Retorna &#039;Amarelo&#039;

// Verificar existência

if (in_array(&#039;Azul&#039;, $cores)) {

echo &quot;Azul existe no array&quot;;

}

// Encontrar índice de um valor

$indice = array_search(&#039;Verde&#039;, $cores);

echo $indice; // Output: 2

?&gt;</code></pre>

<h2>Arrays Associativos</h2>

<p>Arrays associativos usam chaves nomeadas (strings) em vez de índices numéricos. Isso os torna ideais para representar dados estruturados, como registros de banco de dados ou configurações.</p>

<pre><code class="language-php">&lt;?php

// Declaração com chaves nomeadas

$usuario = [

&#039;nome&#039; =&gt; &#039;João Silva&#039;,

&#039;email&#039; =&gt; &#039;joao@email.com&#039;,

&#039;idade&#039; =&gt; 28,

&#039;ativo&#039; =&gt; true

];

// Acessando valores

echo $usuario[&#039;nome&#039;]; // Output: João Silva

echo $usuario[&#039;idade&#039;]; // Output: 28

// Adicionando novos pares chave-valor

$usuario[&#039;telefone&#039;] = &#039;11999999999&#039;;

$usuario[&#039;cidade&#039;] = &#039;São Paulo&#039;;

// Iterando

foreach ($usuario as $chave =&gt; $valor) {

echo &quot;$chave: $valor\n&quot;;

}

// Verificar se chave existe

if (isset($usuario[&#039;email&#039;])) {

echo &quot;Email cadastrado&quot;;

}

?&gt;</code></pre>

<h3>Manipulação de Chaves e Valores</h3>

<p>Funções como <code>array_keys()</code> retornam todas as chaves, <code>array_values()</code> retorna apenas os valores, e <code>array_merge()</code> combina arrays. Para remover uma chave específica, use <code>unset()</code>. A função <code>array_key_exists()</code> é mais segura que <code>isset()</code> quando a chave pode ter valor null.</p>

<pre><code class="language-php">&lt;?php

$produto = [

&#039;id&#039; =&gt; 1,

&#039;nome&#039; =&gt; &#039;Notebook&#039;,

&#039;preco&#039; =&gt; 3500.00,

&#039;estoque&#039; =&gt; 5

];

// Obter todas as chaves

$chaves = array_keys($produto);

print_r($chaves);

// Output: Array ([0] =&gt; id [1] =&gt; nome [2] =&gt; preco [3] =&gt; estoque)

// Obter apenas valores

$valores = array_values($produto);

// Remover uma chave

unset($produto[&#039;estoque&#039;]);

// Mesclar arrays

$novosDados = [&#039;desconto&#039; =&gt; 10, &#039;categoria&#039; =&gt; &#039;Eletrônicos&#039;];

$produto = array_merge($produto, $novosDados);

// Verificar chave

if (array_key_exists(&#039;nome&#039;, $produto)) {

echo &quot;Chave &#039;nome&#039; existe&quot;;

}

?&gt;</code></pre>

<h2>Arrays Multidimensionais</h2>

<p>Arrays multidimensionais são arrays que contêm outros arrays como valores. Eles simulam matrizes ou estruturas mais complexas e são essenciais para trabalhar com dados aninhados.</p>

<pre><code class="language-php">&lt;?php

// Array de arrays (matriz)

$matriz = [

[1, 2, 3],

[4, 5, 6],

[7, 8, 9]

];

echo $matriz[0][1]; // Output: 2

echo $matriz[2][2]; // Output: 9

// Array associativo contendo arrays

$empresa = [

&#039;departamentos&#039; =&gt; [

&#039;TI&#039; =&gt; [&#039;João&#039;, &#039;Maria&#039;, &#039;Pedro&#039;],

&#039;RH&#039; =&gt; [&#039;Ana&#039;, &#039;Carlos&#039;],

&#039;Vendas&#039; =&gt; [&#039;Bruno&#039;, &#039;Sofia&#039;, &#039;Lucas&#039;]

],

&#039;funcionarios&#039; =&gt; [

[

&#039;nome&#039; =&gt; &#039;João&#039;,

&#039;departamento&#039; =&gt; &#039;TI&#039;,

&#039;salario&#039; =&gt; 5000

],

[

&#039;nome&#039; =&gt; &#039;Ana&#039;,

&#039;departamento&#039; =&gt; &#039;RH&#039;,

&#039;salario&#039; =&gt; 4500

]

]

];

// Acessando dados complexos

echo $empresa[&#039;departamentos&#039;][&#039;TI&#039;][0]; // Output: João

echo $empresa[&#039;funcionarios&#039;][0][&#039;salario&#039;]; // Output: 5000

// Iterando estruturas aninhadas

foreach ($empresa[&#039;funcionarios&#039;] as $func) {

echo $func[&#039;nome&#039;] . &quot; - R$ &quot; . $func[&#039;salario&#039;] . &quot;\n&quot;;

}

?&gt;</code></pre>

<h3>Manipulação Avançada</h3>

<p>Para arrays multidimensionais, use <code>array_map()</code> para aplicar funções a todos os elementos, <code>array_filter()</code> para filtrar baseado em condições, e <code>usort()</code> para ordenação customizada. Essas operações são fundamentais em processamento de dados.</p>

<pre><code class="language-php">&lt;?php

$vendas = [

[&#039;produto&#039; =&gt; &#039;Notebook&#039;, &#039;valor&#039; =&gt; 3500, &#039;quantidade&#039; =&gt; 2],

[&#039;produto&#039; =&gt; &#039;Mouse&#039;, &#039;valor&#039; =&gt; 50, &#039;quantidade&#039; =&gt; 10],

[&#039;produto&#039; =&gt; &#039;Teclado&#039;, &#039;valor&#039; =&gt; 200, &#039;quantidade&#039; =&gt; 5]

];

// Calcular total de cada venda

$totais = array_map(function($item) {

return $item[&#039;valor&#039;] * $item[&#039;quantidade&#039;];

}, $vendas);

print_r($totais); // Array ([0] =&gt; 7000 [1] =&gt; 500 [2] =&gt; 1000)

// Filtrar vendas com valor &gt; 100

$caros = array_filter($vendas, function($item) {

return $item[&#039;valor&#039;] &gt; 100;

});

// Ordenar por valor (decrescente)

usort($vendas, function($a, $b) {

return $b[&#039;valor&#039;] &lt;=&gt; $a[&#039;valor&#039;];

});

// Extrair apenas nomes dos produtos

$nomes = array_column($vendas, &#039;produto&#039;);

print_r($nomes); // Array ([0] =&gt; Teclado [1] =&gt; Notebook [2] =&gt; Mouse)

?&gt;</code></pre>

<h2>Conclusão</h2>

<p>Dominando arrays em PHP, você tem domínio sobre a <strong>manipulação fundamental de dados</strong>. Arrays indexados oferecem simplicidade para listas sequenciais, arrays associativos permitem trabalhar com dados estruturados de forma intuitiva, e arrays multidimensionais abrem possibilidades para representar estruturas complexas como bancos de dados e APIs. <strong>Pratique combinações dessas técnicas</strong> — aplicações reais frequentemente mesclam esses conceitos. Compreender as funções built-in do PHP como <code>array_map()</code>, <code>array_filter()</code> e <code>array_column()</code> o tornará muito mais produtivo e seu código mais limpo e profissional.</p>

<h2>Referências</h2>

<ul>

<li><a href="https://www.php.net/manual/pt_BR/language.types.array.php" target="_blank" rel="noopener noreferrer">PHP Arrays - Documentação Oficial</a></li>

<li><a href="https://www.php.net/manual/pt_BR/ref.array.php" target="_blank" rel="noopener noreferrer">PHP Array Functions - Manual</a></li>

<li><a href="https://www.oreilly.com/library/view/modern-php/9781491905173/" target="_blank" rel="noopener noreferrer">Modern PHP: New Features and Good Practices</a></li>

<li><a href="https://phptherightway.com/" target="_blank" rel="noopener noreferrer">PHP: The Right Way - Arrays</a></li>

<li><a href="https://www.codecademy.com/learn/learn-php" target="_blank" rel="noopener noreferrer">Working with Arrays in PHP - Codecademy</a></li>

</ul>

Comentários

Mais em PHP

Dominando Herança e Polimorfismo em PHP em Projetos Reais
Dominando Herança e Polimorfismo em PHP em Projetos Reais

Herança em PHP: Fundamentos e Prática Herança é um dos pilares da Programação...

Boas Práticas de Laços de Repetição: for, while, foreach e do-while para Times Ágeis
Boas Práticas de Laços de Repetição: for, while, foreach e do-while para Times Ágeis

Fundamentos dos Laços de Repetição Um laço de repetição é uma estrutura de co...

CRUD Completo com PDO: Create, Read, Update, Delete: Do Básico ao Avançado
CRUD Completo com PDO: Create, Read, Update, Delete: Do Básico ao Avançado

Preparando o Ambiente: Conexão com PDO A PDO (PHP Data Objects) é uma camada...