Autor Zpráva
icka
Profil *
prosím o pomoc, jsem trochu začátečník a nedaří se mi taková prkotina. Potřebuju udělat přes cyklus while funkci, která mi vyhodí jedno náhodné číslo od 1 - 9, přičemž pomocí pole do funkce vložim čísla, která nechci aby z funkce vyskočily (takové vyjímky):

$nechci = array(2,4,6,8);
while (in_array($cislo, $nechci)) {
$cislo = rand(1,50);
}
24k
Profil *
Nevím jestli jsem to dobře pochopil, ale mohlo by to jit takto


$rozsah=range(1,9);
$nechci = array(2,4,6,8);

$res=array_diff($rozsah, $nechci);
shuffle($res);

# nahodne cislo
echo $res[0];
icka
Profil *
Hm, taky by to šlo, jen mě zajímalo proč mi nefachalo to while... Nevím proč, ale zjistil jsem, že proměnnou $cislo musim nejprve inicializovat.
Takže takto mi to chodí:

$cislo = 1;
$nechci = array(2,4,6,8);
while (in_array($cislo, $nechci)) {
$cislo = rand(1,50);
}

Prostě nevim proč, nechápu, ale je to tak...
Kdyby jste mi to někdo objasnil, byl bych moc rád.
Toto téma je uzamčeno. Odpověď nelze zaslat.