Avatar billede ofirpeter Nybegynder
09. april 2006 - 14:48 Der er 6 kommentarer og
1 løsning

Træk 25 tal fra [1;43] uden tilbagelægning

Hej, jeg ønsker en funktion som kan tage 25 tilfældige tal ud af tallene 1-43, tallene skal skrives til en database. Dubletter ønskes ikke, så trækningen skal være uden tilbagelægning.

Med venlig hilsen
Peter
Avatar billede morhan Novice
09. april 2006 - 14:55 #1
$rnd = range(1, 43);
shuffle($rnd);
$rnd = array_slice($rnd, 0, 25);

echo implode("<br>", $rnd);


hvis du benytter PHP < 4.2.0 skal shuffle seedes først
Avatar billede ofirpeter Nybegynder
09. april 2006 - 15:12 #2
Hvad menes med shuffle seedes? Bruger PHP Version 4.1.2.
Avatar billede coderdk Praktikant
09. april 2006 - 17:05 #3
function make_seed()
{
  list($usec, $sec) = explode(' ', microtime());
  return (float) $sec + ((float) $usec * 100000);
}
srand(make_seed());
$rnd = range(1, 43);
shuffle($rnd);
$rnd = array_slice($rnd, 0, 25);

echo implode("<br>", $rnd);
Avatar billede ofirpeter Nybegynder
12. april 2006 - 14:17 #4
Hej igen, det virker helt fint coderdk, men hvordan får jeg skrevet alle værdierne til en MySQL database? Kan man lave en løkke der udskriver tallene i stedet? Så ville jeg kunne skrive til databasen hver gang.
Avatar billede coderdk Praktikant
12. april 2006 - 16:03 #5
foreach ( $rnd as $val )
{
  mysql_query( "INSERT INTO dintabel (vaerdi) VALUES ($val)" );
}

Eller bedre for databasen:

$sql = "INSERT INTO dintabel (vaerdi) VALUES ";
$sqlvals = array();
foreach ( $rnd as $val )
{
  $sqlvals[]= "($val)";
}
$sql .= implode( ",", $sqlvals );
mysql_query( $sql );

Er det ikke bare sådan noget i den stil?
Avatar billede ofirpeter Nybegynder
03. maj 2006 - 20:41 #6
coderDK du har endnu engang været en fremragende hjælp. Du må meget gerne svare.
Avatar billede coderdk Praktikant
03. maj 2006 - 21:36 #7
Sågerne :)
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