Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Opakující se PHP výsledek

Potřebuji vypsat 3 výsledky, ale aby nemohl být ani jeden stejný jako jiný:

<?php
$RandomList = array();
$RandomList[] = "Discount: 20%";
$RandomList[] = "Discount: 25%";
$RandomList[] = "Discount: 30%";
$RandomList[] = "Discount: 35%";
$RandomList[] = "Discount: 40%";
$RandomList[] = "Discount: 45%";
// Leave next line as is.
echo $RandomList[rand(0,count($RandomList)-1)];
echo $RandomList[rand(0,count($RandomList)-1)];
echo $RandomList[rand(0,count($RandomList)-1)];
?>

Předmět Autor Datum
Tak za prvé to dělej v cyklu. A pokud jde o unikátnost, tak je více možností. Nejprimitivnější ale p…
Wikan 13.02.2019 07:49
Wikan
Tak to vůbec nevím o čem píšeš. Marně hledám na netu hotové řešení.
lukovec 13.02.2019 07:54
lukovec
Nevíš ani co jsou cykly? To jsou ale úplné základy. Případně ještě můžeš použít http://php.net/manua…
Wikan 13.02.2019 08:01
Wikan
To funguje, ale já jich potřebuji vypsat 5 a to pak nefunguje: <?php $input = array("Neo", "Morpheu…
lukovec 13.02.2019 08:19
lukovec
Co znamená, že to nefunguje?
Wikan 13.02.2019 08:21
Wikan
Vypíše to sice 5 každé jiné, ale při F5 se nic nezmění.
lukovec 13.02.2019 08:22
lukovec
Když to dám takto tak se zase mění jen ty 3 poslední, ale ten první ne, ten je pořád stejný: <?php…
lukovec 13.02.2019 08:24
lukovec
http://php.net/manual/en/function.shuffle.php
Wikan 13.02.2019 08:29
Wikan
Já se v tom opravdu nevyznám. Kašli na to, určitě máš jinou práci. Zase tak nutně to nepotřebuju. To…
lukovec 13.02.2019 08:35
lukovec
Ještě se zeptám. Půjde to pomocí javascriptu? Jestli to mám hledat na internetu. Chtěl jsem sice PHP…
lukovec 13.02.2019 08:56
lukovec
Princip je ve všech jazycích stejný.
Wikan 13.02.2019 09:00
Wikan
Takže bych tomu taky nerozuměl. Je ještě nějaké řešení co by fungovalo aniž bys mě musel napsat výsl…
lukovec 13.02.2019 09:01
lukovec
Tak už si můžeš to tajemství nechat pro sebe. Zeptal jsem se na jiné poradně. Aspoň že karma je zdar…
lukovec 13.02.2019 09:23
lukovec
Tvé řešení uvedené v tomto vlákně v příspěvku: https://pc.poradna.net/questions/2833645-opakujici-se… poslední
kacikac 14.02.2019 01:00
kacikac

To funguje, ale já jich potřebuji vypsat 5 a to pak nefunguje:

<?php
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 5);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
echo $input[$rand_keys[2]] . "\n";
echo $input[$rand_keys[3]] . "\n";
echo $input[$rand_keys[4]] . "\n";
?>

Když to dám takto tak se zase mění jen ty 3 poslední, ale ten první ne, ten je pořád stejný:

<?php
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 4);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
echo $input[$rand_keys[2]] . "\n";
echo $input[$rand_keys[3]] . "\n";
?>

Tvé řešení uvedené v tomto vlákně v příspěvku:
https://pc.poradna.net/questions/2833645-opakujici-se-php-vysledek#r2833658
funguje úplně stejně jako je to uvedené ve vlákně, které jsi založil na jpw a které ti tam poradil Keeehi.
Akorát že ten to má řešené přes foreach a ty to tu máš vypsané po řádku jednotlivě.
To, že sis myslel, že první index se ti nemění je pouze na základě toho, že jsi to nezkoušel obnovovat víckrát a první index se ti bude měnit při výběru 4/5 jen relativně málo a to ve 20 % obnovení.

Zpět do poradny Odpovědět na původní otázku Nahoru