| 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: 17 let
|
|||
0