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