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

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

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.

<?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";
}
?>

Operações Comuns

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

<?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
?>

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.

<?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";
}
?>

Manipulação de Chaves e Valores

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

<?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";
}
?>

Arrays Multidimensionais

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.

<?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";
}
?>

Manipulação Avançada

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

<?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)
?>

Conclusão

Dominando arrays em PHP, você tem domínio sobre a manipulação fundamental de dados. 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. Pratique combinações dessas técnicas — aplicações reais frequentemente mesclam esses conceitos. Compreender as funções built-in do PHP como array_map(), array_filter() e array_column() o tornará muito mais produtivo e seu código mais limpo e profissional.

Referências


Artigos relacionados