PHP fonction rand unique [Résolu/Fermé]

Signaler
Messages postés
416
Date d'inscription
vendredi 16 août 2013
Statut
Membre
Dernière intervention
2 février 2018
-
Messages postés
416
Date d'inscription
vendredi 16 août 2013
Statut
Membre
Dernière intervention
2 février 2018
-
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

Messages postés
416
Date d'inscription
vendredi 16 août 2013
Statut
Membre
Dernière intervention
2 février 2018
16
[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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 57358 internautes nous ont dit merci ce mois-ci

Messages postés
991
Date d'inscription
mercredi 20 février 2013
Statut
Membre
Dernière intervention
24 novembre 2018
91
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.