J'ai un code pour faire rouler un numéro de Rand et montrer le gagnant en fonction de leur chance.
========================================= id | Round | first | Second | third ========================================= 1 | 1 | 4 | 3 | 1 =========================================
4 Réponses :
Changer votre code avec
for($i=0;$i<2;$i++)
{
chance($getAllUserTicketHistoryJson[rand(0,count($getAllUserTicketHistoryJson))]).'<br><br>';
}
function chance($arrWinner = array()){
// the array for winner is
echo "<pre> Winner array : ";
print_r($arrWinner);
echo "</pre>";
}
où vous obtenez $ arrwinner string? Le mien est $ entrée
essayez la modifiée ... et en $ arrwinner, vous obtiendrez un tableau pour le gagnant ... Utilisez ce code et vous obtiendrez seulement 3 tableau ... Jouer avec elle ... amusez-vous
Obtenu cette notification d'erreur: Offset non défini: 4 dans et dans la matrice de pré-gagnant:
for($i=0;$i<2;$i++)
{
chance($getAllUserTicketHistoryJson[rand(0,count($getAllUserTicketHistoryJson))]);
}
function chance($arrWinner = array()){
// the array for winner is
echo "<pre> Winner array ";
print_r($arrWinner);
echo "</pre>";
}
try this... and if there is an errer... then let me know ... or add screen short of error if possible
AVIS: Décalage indéfini: 4 en C: \ Xampp \ htdocs \ ... sur la ligne 75 gagnante gagnante, la ligne 75 est une chance ($ getallusertiketoryjson [rand (0, comptage ($ getAlusser Tickethistoryjson))])];
<?php
$ticket_numbers = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25);
shuffle($ticket_numbers);
$number_winners_required_per_round = 5;
$winner_count = 0;
$number_of_rounds = 3;
$round_number = 0;
while ( $round_number < $number_of_rounds) {
$round_number++;
echo "Round $round_number:";
while ($winner_count < $number_winners_required_per_round ) {
$winner[$winner_count] = array_pop($ticket_numbers);
echo "<p>The winning ticket number $winner_count is ticket number: {$winner[$winner_count]}</p>";
$winners[$round_number][] = $winner[$winner_count];
$winner_count++;
}
$winner_count = 0;
}
var_dump($winners);
?>
$ticket_numbers will be filled from the JSON feed. Each time the main loop is run, the required number of winners are picked, their ticket numbers are removed from the list of potential winners. An array of winners is generated which will be used for entering the winners into the database. Each ticket can only win once.
Belle part, pouvez-vous ajouter une chance là-bas? parce que mon code utilise user_id et leur chance, la sortie $ de données comme ceci $ TRAY = Array = tableau ('Black' => 15.30, 'Brown' => 20.20, 'Lala' => 15.20, Popi '=> 14.00,' Usher '=> 20.00);
Je ne serai pas exactement précis avec ce que vous avez déjà demandé, mais vous donner une approche alternative comment résoudre le problème. Permet de reporter la chance d'abord comme une seule entité et renommez votre billet. Chaque billet a une chance unique et égale à être sélectionnée dans chaque tour.
Disons que vous avez vendu 100 billets à la loterie X. La loterie donnée est composée de 5 rounds p> Si vous avez besoin de comparer les chances qu'un joueur possède un certain nombre de billets, il s'agit d'un jeu de données différent à la récupération de votre base de données. Cela nécessiterait une table supplémentaire qui détient ces données, mais il ne faut pas "cuisiner" les chances d'un billet d'apparition. Si vous avez besoin de cette statistique ici est un exemple (en PHP) p> qui entraînerait un total de p> Retour au problème initial. Vous avez maintenant un total de billets code> code> et chaque loterie a 5 tours. Ainsi, p> temps pour modifier l'écho avec quelque chose que vous pourrez stocker dans votre DB en une seule fois. Je vais donc réécrire la dernière partie de la clarté. $rounds = 1;
$maxRounds = 5;
$insert = [ ];
while( $rounds <= $maxRounds )
{
$winners = array_rand( $tickets, 3 );
$tickets = array_diff( $tickets, $winners );
shuffle( $winners );
$insert[$rounds][ ] = $rounds;
foreach( $winners as $winner )
{
$insert[$rounds][ ] = $winner;
}
$insert[$rounds] = '(' . implode( ',', $insert[$rounds] ) . ')';
++$rounds;
}
$sql = sprintf( "INSERT INTO `lotteries`( `round`, `first`, `second`, `third` ) VALUES %s;", implode( ', ', $insert ) );
Vous devriez prendre des aa regarder Stackoverflow.com/ Questions / 28760650 / ...
Et php.net/manual/fr/function.random-int.php a>
Une fois qu'un billet gagne, sont-ils destinés à être éliminés des tours suivants?
Oui, par exemple si l'utilisateur 4 déjà gagné en premier, alors l'utilisateur 4 ne peut plus gagner