Pb avec tableu et choix aléatoire

Pb avec tableu et choix aléatoire - PHP - Programmation

Marsh Posté le 21-10-2005 à 12:39:13    

Bonjour,
 
je cherche à prendre 3 lignes (de manière aléatoire) d'un tableau associatif de la forme :
 

Spoiler :

1 Truc
2 Machin
3 Bidule
4 Tata
5 Toto


 
Si je fais :

Spoiler :

for ($i = 0 ; $i < $NombreVoulu ; $i++) {
 $j = mt_rand(1,$Taille) ;
 echo "$j $DEFI4Numero2Nom[$j]<br>" ;  
}


Je peux avoir deux fois la même ligne.
 
Quelqu'un connait-il une solution à mon pb ?
 
Merci beaucoup
Elisel4

Reply

Marsh Posté le 21-10-2005 à 12:39:13   

Reply

Marsh Posté le 21-10-2005 à 12:41:00    

Premier cadre :  
1 Truc
2 Bidule
3 Machin
4 Chose
5 Tata
 
Deuxième cadre :
$NombreVoulu = 3 ;
$Taille = count($DEFI4Numero2Nom) ;
for ($i = 0 ; $i < $NombreVoulu ; $i++) {
 $j = mt_rand(1,$Taille) ;
 echo "$j $DEFI4Numero2Nom[$j]<br>" ;  
}

Reply

Marsh Posté le 21-10-2005 à 13:51:54    

Reply

Marsh Posté le 21-10-2005 à 13:57:07    

Sinon si c'est juste 3 lignes et que le tableau peut être gros, tu utilises rand/mt_rand en stockant dans un tableau les valeurs déjà tirées au hasard, histoire de bien en avoir trois différentes, ce sera probablement plus efficace.

Message cité 1 fois
Message édité par sielfried le 21-10-2005 à 13:57:35

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 21-10-2005 à 14:05:14    

sielfried a écrit :

Sinon si c'est juste 3 lignes et que le tableau peut être gros, tu utilises rand/mt_rand en stockant dans un tableau les valeurs déjà tirées au hasard, histoire de bien en avoir trois différentes, ce sera probablement plus efficace.


sinon array_rand est pas mal non plus :
récupère les clés du tableau source dans un tableau avec un ordre aléatoire, avec une limite possible.


Message édité par shakpana le 21-10-2005 à 14:06:26
Reply

Marsh Posté le 21-10-2005 à 14:06:38    

Ah ben oui je l'avais oubliée celle-là. :jap:
 
L'ont pas mis dans les "voir aussi" de la doc de rand/mt_rand. :/


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 21-10-2005 à 14:09:51    

sielfried a écrit :

L'ont pas mis dans les "voir aussi" de la doc de rand/mt_rand. :/


freakin' documentation bug ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed