Je souhaiterai faire un random jusque la pas de problème...
$un = rand(1,10);
$deux = rand(1,10)
$trois = rand(1,10);
Je voudrais que si numéro est déjà sorti qu'il ne ressorte pas dans le random suivant.Merci pour votre aide
Code : Tout sélectionner
nombre1 = random
nombre2 = nombre1
tantque(nombre2==nombre1) nombre2=random$un = rand(1,10);
$deux = rand(1,10);
if ($un == $deux)
{
$deux = rand(1,10);
}
Le problème est qu'il peut me ressortir aussi la même valeur donc en fessant sa avec plusieurs numéro ca fait beaucoup de vérification....
$arr = new array(1,...10);
function randy(&$arr)
{
if (empty($arr)) die ('Thu!');
$r = mt_rand(0,count($arr));
$return = $arr[$r];
array_splice($arr,$r,1);
return $return;
}
L'idée est d'avoir un tableau avec les valeurs possibles. A chaque demande d'un nombre aléatoire (par randy()), on choisit une valeur au hasard, et on l'efface du tableau. Du coup, on est sur de ne plus le revoir avant de recharger le script.. (mais du coup, on ne doit pas l'appeler plus de fois qu'il n'y a de valeurs possibles)if ($un == $deux)
{
$deux = rand(1,10);
} $un = mt_rand(1, 10);
$deux = mt_rand(1, 10);
do {
$deux = mt_rand(1, 10);
} while ($un == $deux);
$tab = array();
while ( count($tab) < 3 ) { // tant qu'on a pas récupèré 3 résultats
$nb = mt_rand(1, 10);
if (!in_array($nb, $tab)) // si le tableau ne contient pas le chiffre tiré, on l'ajoute
$tab[] = $nb;
}
print_r($tab);$tab = array();
while ( count($tab) < 3 ) { // tant qu'on a pas récupèré 3 résultats
if (!in_array(mt_rand(1, 10), $tab)) // si le tableau ne contient pas le chiffre tiré, on l'ajoute
$tab[] = $nb;
}
print_r($tab);
Post inutile, je sais...Pour moi c'est pas un post inutile.On peux même faire mieu :
Post inutile, je sais...$tab = array(); while ( count($tab) < 3 ) { // tant qu'on a pas récupèré 3 résultats if (!in_array(mt_rand(1, 10), $tab)) // si le tableau ne contient pas le chiffre tiré, on l'ajoute $tab[] = $nb; } print_r($tab);
sauf que c'est mieux en rien.. il n'y a aucune différence de fonctionnement. On pourrait tout mettre sur une ligne aussi, et enlever tous les espaces blancs..Pour moi c'est pas un post inutile.On peux même faire mieu :
Post inutile, je sais...$tab = array(); while ( count($tab) < 3 ) { // tant qu'on a pas récupèré 3 résultats if (!in_array(mt_rand(1, 10), $tab)) // si le tableau ne contient pas le chiffre tiré, on l'ajoute $tab[] = $nb; } print_r($tab);
C'est toujours mieux d'avoir mieux, non?