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   -
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 :
<?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

  1. blackduck Messages postés 902 Statut Membre 97
     
    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.
    1
  2. fr-darkrod Messages postés 416 Date d'inscription   Statut Membre Dernière intervention   23
     
    [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 " ";
    	}
    }
    ?>
    0