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.
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.
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:
Postar um comentário