Exercícios Resolvidos de Arrays em PHP: Teste sua Lógica de Programação

Parabéns por chegar até aqui em nossa Apostila de PHP Progressivo! Você já dominou a teoria sobre a criação de listas, o laço foreach e as dezenas de funções nativas maravilhosas do PHP.

Mas, na programação, teoria sem prática é apenas ilusão. É quebrando a cabeça com erros e montando a lógica linha por linha que o seu cérebro cria as conexões necessárias para você se tornar um Desenvolvedor Web Sênior.

Nesta página, preparamos uma bateria intensiva de exercícios resolvidos sobre Arrays em PHP. Nossa recomendação máxima: leia o enunciado, abra o seu editor de código (ou um testador PHP online), tente resolver sozinho por pelo menos 15 minutos e apenas depois olhe a nossa solução.

🔥 Regra de Ouro: Não copie e cole as respostas! Digite o código. O ato de digitar ajuda a memorizar a sintaxe e evita que você esqueça ponto-e-vírgula (;) ou chaves ({}).

Exercício 1: O Aquecimento (Soma e Média)

Desafio: Crie um script em PHP que guarde as notas de um aluno (7.5, 8.0, 6.5, 9.5) em um array. Em seguida, use o laço foreach para somar todas as notas, calcule a média final e exiba na tela se ele foi Aprovado (média >= 7) ou Reprovado.

<?php
$notas = [7.5, 8.0, 6.5, 9.5];
$soma = 0;

// Percorrendo o array para somar
foreach ($notas as $nota) {
    $soma += $nota; // Equivalente a: $soma = $soma + $nota;
}

// O count() descobre o total de elementos no array (4 notas)
$media = $soma / count($notas);

echo "A nota total foi: $soma <br>";
echo "A média final é: $media <br>";

if ($media >= 7.0) {
    echo "<strong style='color: green'>Aluno APROVADO!</strong>";
} else {
    echo "<strong style='color: red'>Aluno REPROVADO!</strong>";
}

/* DICA SÊNIOR: Nós usamos a lógica pura com foreach para treinar, 
mas no dia a dia, você poderia usar a função nativa do PHP:
$soma = array_sum($notas); 
*/
?>

Exercício 2: Array Associativo (Cadastro de RH)

Desafio: Crie um array associativo que represente um funcionário, contendo as chaves: "nome", "idade", "cargo" e "salario". Depois, percorra esse array imprimindo a chave e o valor de forma amigável na tela. Se a chave for "salario", adicione o símbolo de "R$" antes do valor.

<?php
$funcionario = [
    "nome" => "Mariana Silva",
    "idade" => 28,
    "cargo" => "Desenvolvedora Back-end",
    "salario" => 6500.00
];

echo "<h3>Ficha do Funcionário:</h3>";
echo "<ul>";

foreach ($funcionario as $chave => $valor) {
    // Tratamento especial para o salário
    if ($chave == "salario") {
        // number_format formata o número para o padrão brasileiro de moeda
        $valorFormatado = number_format($valor, 2, ',', '.');
        echo "<li><b>".ucfirst($chave).":</b> R$ $valorFormatado </li>";
    } else {
        echo "<li><b>".ucfirst($chave).":</b> $valor </li>";
    }
}

echo "</ul>";
?>

Quer mais 500 exercícios como esse?

A lógica de programação se constrói com repetição e aumento gradativo de dificuldade. Não fique caçando exercícios picados pela internet.

Mega Pack 7 Apostilas de Programação PDF

Baixe nosso Mega Pack em PDF. Estude no ônibus, sem distrações do celular, com baterias intensivas de exercícios reais do mercado.

Exercício 3: O Filtro (Números Pares e Ímpares)

Desafio Clássico de Lógica: Crie um array automático usando a função range() contendo números de 1 a 20. Percorra esse array e separe-o em dois novos arrays: um contendo apenas os números pares e outro contendo apenas os números ímpares. No final, exiba os dois novos arrays.

<?php
// 1. Criando o array de 1 a 20 automaticamente
$numeros = range(1, 20);

// 2. Inicializando os arrays vazios que vão receber os filtros
$pares = []; // Pode usar array() também
$impares = [];

// 3. A Lógica de Separação
foreach ($numeros as $num) {
    // Operador Módulo (%): pega o resto da divisão. 
    // Se um número dividido por 2 não sobrar nada (resto 0), ele é PAR!
    if ($num % 2 == 0) {
        array_push($pares, $num); // Adiciona na lista de pares
    } else {
        array_push($impares, $num); // Adiciona na lista de ímpares
    }
}

// 4. Exibindo os resultados usando o utilitário print_r
echo "Lista de Pares:<br>";
print_r($pares);

echo "<br><br>Lista de Ímpares:<br>";
print_r($impares);
?>

Exercício 4: O Simulador da Mega-Sena (Sorteios)

Desafio: Escreva um script para gerar um bilhete premiado da Mega-Sena. Ele deve conter 6 números aleatórios entre 1 e 60, sem repetição. Os números devem ser exibidos na tela em ordem crescente.

<?php
// LÓGICA NINJA: Em vez de sortear um por um e verificar se já saiu (difícil),
// Nós criamos o "globo" do bingo inteiro, embaralhamos e tiramos os 6 primeiros!

// 1. Cria as bolinhas de 1 a 60
$globo = range(1, 60);

// 2. Chacoalha e embaralha todas as bolinhas dentro do array
shuffle($globo);

// 3. Retira as 6 primeiras bolinhas do globo embaralhado
$bilhete = [];
for ($i = 0; $i < 6; $i++) {
    // array_pop tira o último elemento do array e nos entrega
    $bolinha_sorteada = array_pop($globo);
    array_push($bilhete, $bolinha_sorteada);
}

// 4. Exigência do cliente: organizar os 6 números do menor para o maior
sort($bilhete);

// 5. Exibe os números separados por um traço usando a função implode()
echo "<h2>Seu bilhete da sorte: </h2>";
echo "<p style='font-size: 24px; letter-spacing: 5px;'>";
echo implode(" - ", $bilhete);
echo "</p>";
?>

Exercício 5: Arrays Multidimensionais (O Carrinho de Compras)

Desafio de Nível Intermediário: Em sistemas reais (como o MercadoLivre ou a Amazon), um carrinho de compras não é uma lista simples, é um "Array dentro de um Array" (Matriz ou Multidimensional). Cada produto possui nome, preço e quantidade. Crie um carrinho com 3 itens, calcule o subtotal de cada produto e o valor total final da compra.

<?php
// Array Multidimensional: Um array grandão contendo 3 arrays associativos
$carrinho = [
    [
        "produto" => "Teclado Mecânico RGB",
        "preco" => 350.00,
        "quantidade" => 1
    ],
    [
        "produto" => "Monitor Gamer 24 pol",
        "preco" => 1200.00,
        "quantidade" => 2
    ],
    [
        "produto" => "Mousepad Extra Grande",
        "preco" => 80.00,
        "quantidade" => 3
    ]
];

$totalCompra = 0;

echo "<h3>Resumo do seu Pedido:</h3>";
echo "<hr>";

foreach ($carrinho as $item) {
    // Acessando os dados do array interno
    $nome = $item["produto"];
    $precoUnitario = $item["preco"];
    $qtd = $item["quantidade"];
    
    // Calcula o subtotal do item (preço x quantidade)
    $subtotal = $precoUnitario * $qtd;
    
    // Adiciona o subtotal ao valor total geral da compra
    $totalCompra += $subtotal;
    
    // Exibe a linha do produto
    echo "{$qtd}x $nome | Unidade: R$ {$precoUnitario} | <b>Subtotal: R$ {$subtotal}</b> <br>";
}

echo "<hr>";
echo "<h4>Valor Total a Pagar: R$ " . number_format($totalCompra, 2, ',', '.') . "</h4>";
?>

Transforme Exercícios em Sistemas Reais! 🚀

Você acabou de ver o coração de uma Loja Virtual funcionando no Exercício 5. Sabe qual é o próximo passo? Aprender a puxar esses produtos direto de um Banco de Dados MySQL de forma segura e profissional. A nossa Apostila Premium te guia do básico até as listagens de bancos reais em passos simples.

📥 Fazer Download da Apostila Completa de PHP

Nenhum comentário: