Hoje iremos desenvolver um sisteminha de sorteio bem simples que pode ser utilizado em alguns casos. Iremos armazenar nossos participantes em um array, porém o mais correto seria armazena-los em um banco de dados, mas o conceito é o mesmo.
Veja como o sistema funciona, clicando aqui.
<?php // Matriz com todos os participantes $participantes = array("Rafael", "João", "Maria", "Pedro", "Patricia", "Camila", "Roberto"); // Definindo o número de participantes $numParticipantes = sizeof($participantes); // Informações adicionais $chances = round((1 / $numParticipantes) * 100); echo "- Temos no total <b>".$numParticipantes."</b> participantes; <br />"; echo "- Cada participante teve <b>".$chances."%</b> de chance de ganhar; <br /><br />"; // Sorteando # Primeiro ganhador $sorteado[1] = $participantes[rand(0,$numParticipantes - 1)]; # Segundo ganhador for ($i = 1; $i < 2; $i++) { $sorteado[2] = $participantes[rand(0,$numParticipantes - 1)]; // Caso o ganhador já tenha saido, sorteia novamente. if ($sorteado[2] == $sorteado[1]) { --$i; } } # Terceiro ganhador for ($i = 1; $i < 2; $i++) { $sorteado[3] = $participantes[rand(0,$numParticipantes - 1)]; // Caso o ganhador já tenha saido, sorteia novamente. if ($sorteado[3] == $sorteado[1] || $sorteado[3] == $sorteado[2]) { --$i; } } // Exibindo ganhadores echo "<b>Ganhadores:</b> <br />"; echo "<b>1°</b> - " . $sorteado[1] . "<br />"; echo "<b>2°</b> - " . $sorteado[2] . "<br />"; echo "<b>3°</b> - " . $sorteado[3] . "<br />"; ?>
Agora vou tentar explicar melhor o sisteminha:
– Linha 4: Colocamos todos os participantes em um array(), porém como já foi dito, o mais correto seria colocar os participantes em uma tabela no banco de dados;
– Linha 7: Armazenamos o numero de participantes em uma variável;
– Linha 10: Calculamos a chance que o participante tem de ganhar (em %);
– Linha 11 e 12: Exibimos as informações adicionais;
– Linha 17: Sorteamos o primeiro ganhador e armazenamos o individuo em um array(). Utilizamos a função rand() para sortear um numero desde 0 (zero) até o numero máximo de participantes, colocamos “-1” pois lembre-se que em um array o primeiro valor sempre é 0 (zero) e não 1;
– Linha 20 a 26: Utilizamos o laço for() para sortear o segundo ganhador, pois se o segundo ganhador for igual a o primeiro, precisamos sortear novamente até sair um participante diferente;
– Linha 29 a 35: Utilizamos novamente o laço for(), desta vez para sortear o terceiro ganhador. E segue o mesmo conceito do segundo ganhador;
– Linha 38 a 42: Exibimos os ganhadores.
Isso é apenas uma base de como você pode desenvolver um sistema de sorteio, o conceito praticamente será sempre o mesmo. Até mais.