PHP fonction rand unique
Résolu
fr-darkrod
Messages postés
416
Date d'inscription
Statut
Membre
Dernière intervention
-
fr-darkrod Messages postés 416 Date d'inscription Statut Membre Dernière intervention -
fr-darkrod Messages postés 416 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'essaie de faire une fonction pour avoir des nombres uniques de 1 à 9.
Exemple :
je génère par un bouton
123456789
Je rappuie et souhaiterai avoir
123456798
Il ne doit pas s'afficher en appuyant à nouveau
112345678
Merci :)
Mon code actuel :
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser dans tes prochains messages.
.
Un homme à tout faire.
J'essaie de faire une fonction pour avoir des nombres uniques de 1 à 9.
Exemple :
je génère par un bouton
123456789
Je rappuie et souhaiterai avoir
123456798
Il ne doit pas s'afficher en appuyant à nouveau
112345678
Merci :)
Mon code actuel :
<?php
$num = array (1,2,3,4,5,6,7,8,9);
if ($_POST)
{
$alpha = "1";
while ($alpha <= 9)
{
$rand1 = mt_rand(1,8);
if (isset($rand1))
{
echo $num[$rand1];
}
$alpha++;
echo " ";
}
}
?>
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser dans tes prochains messages.
.
Un homme à tout faire.
2 réponses
-
Salut,
Ce que tu peux utiliser c'est la fonction array_rand($tableau) qui va chercher au hasard une valeur du tableau passé en paramètre. En utilisant ton tableau $num
$chiffre_gen=array_rand($num);
unset($num[$chiffre_gen]);
tu récupères une valeur et tu peux la supprimer ensuite du tableau pour quelle ne soit pas piochée une seconde fois.
-
[RESOLU]
Merci beaucoup :) vraiment pratique cette fonction :D
Je mets mon code à jour pour ceux qui souhaiterai l'utiliser ;)
<?php $num = array (1,2,3,4,5,6,7,8,9); if ($_POST) { $alpha = "1"; while ($alpha <= 9) { $chiffre_gen=array_rand($num); echo $chiffre_gen; unset($num[$chiffre_gen]); $alpha++; echo " "; } } ?>