Avatar billede martinsp Nybegynder
25. maj 2008 - 13:57 Der er 18 kommentarer og
1 løsning

Tilfældige tal mellem 1 og 30

Hej eksperter (:

Jeg står og mangler et script, der tilfældigt finder 5 tal mellem 1 og 30. Det samme tal må IKKE komme 2 gange.
Håber i forstår og kan hjælpe.

- Martin
Avatar billede olebole Juniormester
25. maj 2008 - 14:05 #1
<ole>

$a = range(1,30);
shuffle($a);
$a = array_slice($a, 0, 5);

var_dump($a);

/mvh
</bole>
Avatar billede olebole Juniormester
25. maj 2008 - 14:07 #2
- og linjen:
    var_dump($a);

- er naturligvis bare med, så du kan se array'et med dine fem tilfældige tal  ;o)
Avatar billede martinsp Nybegynder
25. maj 2008 - 15:44 #3
ja, det ser ud til at virke, men hvordan får jeg det proppet ind i min kode...

Jeg har en form, med 30 tal, hvor man kan sætte 5 krydser i checkboxene.
Meningen er så, at hvis de 5 valgte tal, er det samme, som din kode laver, så skal den skrive, hvor mange der er rigtige.

Lyder lidt indviklet, men kan ikke forklare det anderledes.
Håber du forstår (:
Avatar billede olebole Juniormester
25. maj 2008 - 16:10 #4
Hvis dine checkbox'e ser sådan ud:

<form method="post" ......................>
    1: <input type="checkbox" name="blabla[]"><br>
    2: <input type="checkbox" name="blabla[]"><br>
    3: <input type="checkbox" name="blabla[]"><br>
    ... osv ... osv ...
</form>

- må du på serveren kunne skrive noget à la:

<?php
$a = range(1,30);
shuffle($a);
$a = array_slice($a, 0, 5);

$numFound = 0;
for ($i=0; $i<5; $i++) {
    if ( in_array($_POST["blabla"][$i]) ) $numFound++;
}

print $numFound;
?>
Avatar billede olebole Juniormester
25. maj 2008 - 16:12 #5
Ups  =)

<form method="post" ......................>
    1: <input type="checkbox" name="blabla[]" value="1"><br>
    2: <input type="checkbox" name="blabla[]" value="2"><br>
    3: <input type="checkbox" name="blabla[]" value="3"><br>
    ... osv ... osv ...
</form>

- må du på serveren kunne skrive noget à la:

<?php
$a = range(1,30);
shuffle($a);
$a = array_slice($a, 0, 5);

$numFound = 0;
for ($i=0; $i<5; $i++) {
    if ( in_array($_POST["blabla"][$i], $a) ) $numFound++;
}

print $numFound;
?>
Avatar billede martinsp Nybegynder
25. maj 2008 - 16:15 #6
det virker perfekt, tak. (:

- send et svar og du får dine point
Avatar billede martinsp Nybegynder
25. maj 2008 - 16:16 #7
...lige én ting til, kan jeg skrive de 5 tilfældige tal ud`?
Avatar billede olebole Juniormester
25. maj 2008 - 16:31 #8
Yups - f.eks:
    print implode("<br>", $a);

- eller:
    print "<div>".implode("</div><div>", $a)."</div>";
Avatar billede martinsp Nybegynder
25. maj 2008 - 16:34 #9
Perfekt!

- lukket.
Avatar billede olebole Juniormester
25. maj 2008 - 16:52 #10
Tak for points  ;o)
Avatar billede martinsp Nybegynder
25. maj 2008 - 17:13 #11
værsgo ;)

- ohh, jeg har lige brug for din hjælp, endnu en gang, hvis du gider (:

kan jeg skrive de 5 tilfældige tal med billeder. Fx tal 1 = billede 1, tal 15 = billede 15`?
Avatar billede olebole Juniormester
25. maj 2008 - 20:43 #12
Hehe ... det kunne f.eks. se sådan ud:

$aPics = array();
for ($i=0; $i<5; $i++) {
    if ( in_array($_POST["blabla"][$i], $a) ) {
        $aPics[] = "<img src='images/pic_".$_POST["blabla"][$i].".gif' alt=''>";
    }
}
print implode("\r\n", $aPics);
Avatar billede martinsp Nybegynder
26. maj 2008 - 15:23 #13
Det virker, men det var ikke helt det jeg mente (:

- kan man gøre, så den skrive vindertallene ud med billeder og ikke de rigtige tal.
Avatar billede w13 Novice
18. juni 2008 - 13:15 #14
Sådan som ole gør det, er vel det du ønsker?
Avatar billede martinsp Nybegynder
18. juni 2008 - 13:44 #15
Ikke helt. Det ole har lavet, skriver vindertallene, som man har rigtige. Jeg søger en kode, der skrive ALLE vindertallene.. (:
Avatar billede w13 Novice
18. juni 2008 - 13:48 #16
Så er det vel:

$aPics = array();
for ($i=0; $i<count($a); $i++) {
    $aPics[] = "<img src='images/pic_".$a[$i].".gif' alt=''>";
}
print implode("\r\n", $aPics);
Avatar billede martinsp Nybegynder
18. juni 2008 - 16:24 #17
Det var lige præcis det jeg søgte. Tak for det.
- Ole har ikke lagt et svar, så hvis du ligger et, så får du pointene.
Avatar billede w13 Novice
20. juni 2008 - 08:07 #18
Du har allerede givet Ole point. ;)
Avatar billede martinsp Nybegynder
20. juni 2008 - 10:13 #19
når ja, ups :b
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester