Problème de doublon php, fonction in_array()

Fermé
StidP3 Messages postés 3 Date d'inscription mercredi 6 juin 2012 Statut Membre Dernière intervention 13 juin 2012 - 6 juin 2012 à 11:51
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 - 6 juin 2012 à 17:11
Bonjour,

je souhaite créer un qcm, ici je veux effectuer et tirage aléatoire du nombre de questions ouvertes choisies par l'utilisateur ($questO) parmi le nombre total de questions ouvertes ($N), j'ai écrit le code suivant qui ne fonctionne pas car j'ai encore des doublons. Need help thanks


if($questO==0)
{ echo"<h1>Pas de questions ouvertes</h1>";
}
else
{ for($i=1;$i<=$questO;$i++)
{ do
{ $val=rand(1,$NO);
If(in_array($val,$tableauO)==true)
{ $rep=true;
}
else
{ $rep=false;
}
}
while($rep=false);
$tableauO[$i-1]=$val;
echo $tableauO[$i-1];
}
}

A voir également:

3 réponses

Utilisateur anonyme
6 juin 2012 à 13:54
Bonjour

ton while($rep=false); est incorrect à deux titres :
il faut == pour comparer, et non pas simplement =
C'est si $rep==true qu'il faut reboucler, pas si $rep==false
1
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
Modifié par jisisv le 6/06/2012 à 17:12
Je tu peux utiliser shuffle> et <ital>array_slice
johand@osiris: ~/src/php $ cat qcm.php 
<?php 
$nombre_de_questions = 10; 
$selected = 4; 
$all = range(1, $nombre_de_questions); 
shuffle($all); 
$qcm = array_slice( $all, 1 , $selected); 

foreach ( $qcm as $cnt) 
  { 
    printf("Question %02d\n", $cnt); 
  } 
?> 
johand@osiris: ~/src/php $ php qcm.php  
Question 02 
Question 05 
Question 09 
Question 04


Gates gave ^H sold you the windows.
GNU gave us the whole house.(Alexandrin)
1
StidP3 Messages postés 3 Date d'inscription mercredi 6 juin 2012 Statut Membre Dernière intervention 13 juin 2012
6 juin 2012 à 14:12
Merci beaucoup le père !
petite erreur bête qui bloque longtemps quand on ne la voit pas
0