/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Ikke samme forekomst to gange
Fra : Lasse Vestergaard


Dato : 31-12-05 09:52

Hej!

Jeg har en række med 10 kollonner. Jeg vil i hver kollonne have
et tilfældigt tal og det samme tal må ikke forekomme to gange i
samme række!

Er der nogen der har en idé til hvordan man gør det? Findes der
en meotde i php der kan gøre dette?

vh

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Per Thomsen (31-12-2005)
Kommentar
Fra : Per Thomsen


Dato : 31-12-05 10:46

Lasse Vestergaard wrote:
> Hej!
>
> Jeg har en række med 10 kollonner. Jeg vil i hver kollonne have
> et tilfældigt tal og det samme tal må ikke forekomme to gange i
> samme række!
>
> Er der nogen der har en idé til hvordan man gør det? Findes der
> en meotde i php der kan gøre dette?
>
> vh
>

Skal det være f.eks. tallene fra 1 til 10 i en vilkårlig rækkefølge:
$tal = range(1,10);
shuffle( $tal );

Skal det være 10 helt tilfældige tal:
$tal = NULL;
settype($tal, 'array');
$nytTal = 0;
mt_srand();
while( count($tal)<10 ) {
while( in_array($nytTal, $tal) ) {
   $nytTal = mt_rand();
}
$tal[] = $nytTal;
}

Ovenstående er dog farlig, da den i teorien kan køre uendeligt, men det
kan sikkert omskrives til noget bedre.

Er det 10 tal indenfor et bestemt interval (f.eks. 1000-2000):
$range = range(1000,2000);
$tal = NULL;
settype($tal, 'array');
srand((float) microtime() * 10000000);
$noegler = array_rand( $range, 10 );
foreach( $noegler as $noegle ) {
$tal[] = $rand[$noegle];
}

Sidstnævnte kan faktisk også bruges til forslag nr 2, ved at bruge:
$range = range(0, getrandmax() );

Alt det ovenstående er utestet, men burde kunne fungere som kilde til
inspiration :)

MVH Per Thomsen,
<http://www.pert.dk/>

Lasse Vestergaard (31-12-2005)
Kommentar
Fra : Lasse Vestergaard


Dato : 31-12-05 14:26

> Skal det være f.eks. tallene fra 1 til 10 i en vilkårlig rækkefølge:
> $tal = range(1,10);
> shuffle( $tal );

Det var faktisk ovenstående jeg ledte efter. Tak for hjælpen

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177516
Tips : 31968
Nyheder : 719565
Indlæg : 6408629
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste