<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"><?php
// Declaração usando colchetes
$frutas = ['Maçã', 'Banana', 'Laranja'];
// 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[] = 'Melancia'; // Adiciona no próximo índice disponível
$frutas[10] = 'Uva'; // Define em posição específica
// Iterando com foreach
foreach ($frutas as $fruta) {
echo $fruta . "\n";
}
// Iterando com índice
foreach ($frutas as $indice => $fruta) {
echo "[$indice] => $fruta\n";
}
?></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"><?php
$cores = ['Vermelho', 'Azul'];
// Adicionar elementos
array_push($cores, 'Verde', 'Amarelo');
echo count($cores); // Output: 4
// Remover último elemento
$ultima = array_pop($cores); // Retorna 'Amarelo'
// Verificar existência
if (in_array('Azul', $cores)) {
echo "Azul existe no array";
}
// Encontrar índice de um valor
$indice = array_search('Verde', $cores);
echo $indice; // Output: 2
?></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"><?php
// Declaração com chaves nomeadas
$usuario = [
'nome' => 'João Silva',
'email' => 'joao@email.com',
'idade' => 28,
'ativo' => true
];
// Acessando valores
echo $usuario['nome']; // Output: João Silva
echo $usuario['idade']; // Output: 28
// Adicionando novos pares chave-valor
$usuario['telefone'] = '11999999999';
$usuario['cidade'] = 'São Paulo';
// Iterando
foreach ($usuario as $chave => $valor) {
echo "$chave: $valor\n";
}
// Verificar se chave existe
if (isset($usuario['email'])) {
echo "Email cadastrado";
}
?></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"><?php
$produto = [
'id' => 1,
'nome' => 'Notebook',
'preco' => 3500.00,
'estoque' => 5
];
// Obter todas as chaves
$chaves = array_keys($produto);
print_r($chaves);
// Output: Array ([0] => id [1] => nome [2] => preco [3] => estoque)
// Obter apenas valores
$valores = array_values($produto);
// Remover uma chave
unset($produto['estoque']);
// Mesclar arrays
$novosDados = ['desconto' => 10, 'categoria' => 'Eletrônicos'];
$produto = array_merge($produto, $novosDados);
// Verificar chave
if (array_key_exists('nome', $produto)) {
echo "Chave 'nome' existe";
}
?></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"><?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 = [
'departamentos' => [
'TI' => ['João', 'Maria', 'Pedro'],
'RH' => ['Ana', 'Carlos'],
'Vendas' => ['Bruno', 'Sofia', 'Lucas']
],
'funcionarios' => [
[
'nome' => 'João',
'departamento' => 'TI',
'salario' => 5000
],
[
'nome' => 'Ana',
'departamento' => 'RH',
'salario' => 4500
]
]
];
// Acessando dados complexos
echo $empresa['departamentos']['TI'][0]; // Output: João
echo $empresa['funcionarios'][0]['salario']; // Output: 5000
// Iterando estruturas aninhadas
foreach ($empresa['funcionarios'] as $func) {
echo $func['nome'] . " - R$ " . $func['salario'] . "\n";
}
?></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"><?php
$vendas = [
['produto' => 'Notebook', 'valor' => 3500, 'quantidade' => 2],
['produto' => 'Mouse', 'valor' => 50, 'quantidade' => 10],
['produto' => 'Teclado', 'valor' => 200, 'quantidade' => 5]
];
// Calcular total de cada venda
$totais = array_map(function($item) {
return $item['valor'] * $item['quantidade'];
}, $vendas);
print_r($totais); // Array ([0] => 7000 [1] => 500 [2] => 1000)
// Filtrar vendas com valor > 100
$caros = array_filter($vendas, function($item) {
return $item['valor'] > 100;
});
// Ordenar por valor (decrescente)
usort($vendas, function($a, $b) {
return $b['valor'] <=> $a['valor'];
});
// Extrair apenas nomes dos produtos
$nomes = array_column($vendas, 'produto');
print_r($nomes); // Array ([0] => Teclado [1] => Notebook [2] => Mouse)
?></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>