Problème de doublon php, fonction in_array()

StidP3 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   -
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
 
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   Statut Modérateur Dernière intervention   934
 
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   Statut Membre Dernière intervention  
 
Merci beaucoup le père !
petite erreur bête qui bloque longtemps quand on ne la voit pas
0