PHP fonction rand unique

Résolu/Fermé
fr-darkrod Messages postés 418 Date d'inscription vendredi 16 août 2013 Statut Membre Dernière intervention 14 novembre 2020 - Modifié par jordane45 le 27/05/2015 à 10:38
fr-darkrod Messages postés 418 Date d'inscription vendredi 16 août 2013 Statut Membre Dernière intervention 14 novembre 2020 - 27 mai 2015 à 10:50
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.
A voir également:

2 réponses

blackduck Messages postés 817 Date d'inscription mercredi 20 février 2013 Statut Membre Dernière intervention 24 novembre 2018 96
27 mai 2015 à 10:39
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
fr-darkrod Messages postés 418 Date d'inscription vendredi 16 août 2013 Statut Membre Dernière intervention 14 novembre 2020 23
27 mai 2015 à 10:50
[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