Autor Zpráva
petr
Profil *
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
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 *
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
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 *
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

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: