Problème de doublon php, fonction in_array()

StidP3 Messages postés 3 Statut Membre -  
jisisv Messages postés 3678 Statut Modérateur -
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];
}
}

3 réponses

  1. Utilisateur anonyme
     
    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
  2. jisisv Messages postés 3678 Statut Modérateur 936
     
    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
  3. StidP3 Messages postés 3 Statut Membre
     
    Merci beaucoup le père !
    petite erreur bête qui bloque longtemps quand on ne la voit pas
    0