Autor | Zpráva | ||
---|---|---|---|
petr Profil * |
#1 · Zasláno: 13. 3. 2010, 10:38:33
Ahoj všem. Jak udělat jednoduše abych generoval náhodná čísla a generovaná čísla se neopakovali .
Toto sice funguje,ale je to blbost.... <?php $imgpocet=5; $imga=rand(1, $imgpocet); $imgb=rand(1, $imgpocet); $imgc=rand(1, $imgpocet); $imgd=rand(1, $imgpocet); $imge=rand(1, $imgpocet); if ($imga==$imgb or $imga==$imgc or $imga==$imgd or $imga==$imge or $imgb==$imgc or $imgb==$imgd or $imgb==$imge or $imgc==$imgd or $imgc==$imge or $imgd==$imge): ?> <script type="text/javascript"> setTimeout("document.autoform.submit( 'submit' )") </script> <form action="levy.php" method=post name="autoform"> <input type="hidden"> </form> <?php endif; if ($imga!=$imgb and $imga!=$imgc and $imga!=$imgd and $imga!=$imge and $imgb!=$imgc and $imgb!=$imgd and $imgb!=$imge and $imgc!=$imgd and $imgc!=$imge and $imgd!=$imge): echo $imga; echo $imgb; echo $imgc; echo $imgd; echo $imge; endif; ?> |
||
Nox Profil |
#2 · Zasláno: 13. 3. 2010, 10:46:27
Mělo by fungovat
$img = array(); $max = min(5, $imgpocet); // pokud je míň obrázků, musel by se nějaký opakovat while(count($img)<$max) { $new = mt_rand(1, $imgpocet); if( !in_array($new, $img) ) $img[] = $new; } |
||
petr Profil * |
#3 · Zasláno: 13. 3. 2010, 10:53:09
Nox
Díky. Já začínám tak to vyzkouším, nedokážu to takhle hned vyhodnotit...Pohraju si s tím a snad to dotáhnu do zdárného konce. |
||
Alphard Profil |
#4 · Zasláno: 13. 3. 2010, 10:55:07
Viz třeba Nejčastější potíže s PHP (FAQ)
Zkrátka dát hodnoty do pole, zamíchat ho a pak přistupovat postupně od prvního klíče. |
||
petr Profil * |
#5 · Zasláno: 13. 3. 2010, 11:16:30
Alphard
No projel jsem to příliš rychle a přehlídl jsem to... Takže shuffle zamíchá pole a já pak z něj pouze čtu od začátku....díky |
||
Časová prodleva: 16 let
|
0