PHP fonction rand unique

Résolu
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. 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. [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 " ";
      	}
      }
      ?>