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/>