Avatar billede lillebror Nybegynder
02. marts 2004 - 17:32 Der er 3 kommentarer og
1 løsning

Simpel randomfunktion i php

Jeg har en række tal, lad os forestille os at det er fra 1-10
ud af mine tal vil jeg gerne vælge 3 tilfældige, men de må ikke være ens. altså gerne 3 4 og 9, men ikke 3 4 3. Gerne 3 7 1, men ikke 7 7 1

Håber det var let at forstå, og håber på et hurtigt svar :)
Avatar billede jakoba Nybegynder
02. marts 2004 - 17:52 #1
$dit_array =  din række tal  // et array med tal
$dit_array = array_unique( $dit_array );  // fjerner alle dubletter
if ( count( $dit_array ) < 3 ) {
    echo "FEJL: der er ikke 3 forskellige i de tal vi fik.";
} else {
    // så vi 3 af de tal
    echo $dit_array[0] .", " .$dit_array[1] .", " .$dit_array[2] ."<br>";
}

http://dk.php.net/manual/en/function.array-unique.php

mvh JakobA
Avatar billede lillebror Nybegynder
02. marts 2004 - 17:56 #2
Er lidt i tvivl om jeg kan pakke den ind i det jeg har :)
Havde håbet på en funktion, hvor jeg kunne bestemme hvilke tal den ikke måtte tage med(læs. den ene eller de to der er blevet valgt før)
Avatar billede lillebror Nybegynder
02. marts 2004 - 18:36 #3
Fixede det selv med mt_rand og en while loop der sørgede for at når to numre var lig hinanden så skulle den prøve igen, ser ud til at virke fint nok :) Men du får selvfølgelig point for din besvarelse
Avatar billede detox Nybegynder
02. marts 2004 - 21:10 #4
Du kunne osse gøre sådan:

<?php
$arr = range(1,10);
shuffle($arr);
for ($i=0;$i<3;$i++) {
    echo $arr[$i] . "<br />";
}
?>

Bemærk at for php < 4.2, skal du bruge srand() til shuffle funktionen.
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