[php] ints in random volgorde

Pagina: 1
Acties:
  • 41 views sinds 30-01-2008

  • Suffie
  • Registratie: Maart 2002
  • Laatst online: 16:07
ik ben een quiz aan het maken, waarbij een vraag 4 multiple choice antwoorden heeft, alleen nu moet ik ze doorelkaar gooien (de antwoorden) voordat ik ze in de db opneem.

Om verschillende redenen heb ik aan alle antwoorden ints toegekend, dus antwoord a =0 b=1 etc.

dus ik moet een combi van 4 variabelen krijgen zoals
1234, 4132, 4312 enzo. Dus zonder dubbelen. Nu had ik devolgende omweg bedacht:
code:
1
2
3
4
5
6
7
8
9
10
11
12
$volgorde0 = rand(1,4); //plaats van eerste getal
$volgorde1 = rand(1,4); 

//als ze hetzelfde zijn, ga door tot ze niet meer hetzelfde zijn
for($i=0;$volgorde0==$volgorde1;$i++){$volgorde1 = rand(1,4);} 
$volgorde2 = rand(1,4); 

//zelfde principe
for($i=0;$volgorde2==$volgorde0||$volgorde2==volgorde1;$i++){$volgorde2 = rand(1,4);}  
$volgorde3 = rand(1,4); 
for($i=0;$volgorde3==$volgorde0||$volgorde3==$volgorde1||$volgorde3==$volgorde2;$i++)
{$volgorde3 = rand(1,4);}


alleen dit werkt niet.

edit: te vroeg op versturen geklikt

maar hoe krijg ik getal 1t/m4 random in $volgorde0 t/m $volgorde3 ?

[ Voor 7% gewijzigd door Suffie op 06-11-2003 21:02 ]

I don't suffer from insanity, I enjoy every minute of it


  • stekkel
  • Registratie: Augustus 2001
  • Laatst online: 12-07 11:54
PHP:
1
2
3
4
5
$values = array();
while (count($values) !==4) {
     $rand_int = $rand(1,4);
    $values[$rand_int] = $rand_int;
}

Dat zou moeten werken.

Bedenk me net wat anders:
PHP:
1
2
$values = array(1,2,3,4);
shuffle($values);


edit:

Te laat, zie hieronder

[ Voor 31% gewijzigd door stekkel op 06-11-2003 21:12 ]


  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 15-07 20:09

dArtagnan

Een voor allen, allen voor een

De item's in een array zetten en dan met shuffle() de array door elkaar gooien.

PHP:
1
shuffle($numbers);

[ Voor 22% gewijzigd door dArtagnan op 06-11-2003 21:11 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12:02

.oisyn

Moderator Devschuur®

Demotivational Speaker

manual werk dus :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Dit topic is gesloten.