Atch Skrevet 7. november 2005 Del Skrevet 7. november 2005 Har denne koden: <? $sitat = array( 1 => "katapult", 2 => "tåre", 3 => "danse", 4 => "emu", 5 => "froske", 6 => "hoppe", 7 => "drabant", 8 => "kule", 9 => "gusje", 10 => "rosa", 11 => "pulver", 12 => "dask", 13 => "maskin", 14 => "sukker", 15 => "gamasje", 16 => "tulipan", 17 => "sorg", 18 => "grums", 19 => "blabb", 20 => "mystikk", ); srand ((double) microtime() * 1000000); $random = rand(1,10); $randomm = rand(11,20); echo"$sitat[$random]"; echo"$sitat[$randomm]"; echo"<br />\n"; echo"$sitat[$random]"; echo"$sitat[$randomm]"; echo"<br />\n"; echo"$sitat[$random]"; echo"$sitat[$randomm]"; echo"<br />\n"; echo"$sitat[$random]"; echo"$sitat[$randomm]"; echo"<br />\n"; ?> Dette viser på en liste nedover kombinasjoner av to arrays fra hver halvdel av arraylista. Men jeg vil at hver linje på lista skal ha en unik kombinasjon! Nå kommer f.eks. "Froskeblabb <br>froskeblabb<br>froskeblabb<br>froskeblabb" (<br> vises ikke da, selvfølgelig). Hvordan kan jeg få hver linje til å ha en kombinasjon som ikke er vist tidligere? F.eks. "Froskeblabb<br>emumaskin<br>tåremystikk..." osv...? Tusen takk! Lenke til kommentar
Axentrix Skrevet 7. november 2005 Del Skrevet 7. november 2005 Først og fremst, bytte uyt hver av variablene $random og $randomm, da disse settes til en fast verdi, og vil gjenta den samme hver gang. slik: for($a = 1; $a <= 5; $a++) { echo"$sitat[rand(1,10)]"; echo"$sitat[rand(11,20)]"; echo"<br />\n"; } Lenke til kommentar
Atch Skrevet 7. november 2005 Forfatter Del Skrevet 7. november 2005 Da får jeg: Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting ']' in ........ on line 32. Koden jeg skrev ut ifra tipset var: <? $sitat = array( 1 => "katapult", 2 => "tåre", 3 => "danse", 4 => "emu", 5 => "froske", 6 => "hoppe", 7 => "drabant", 8 => "kule", 9 => "gusje", 10 => "rosa", 11 => "pulver", 12 => "dask", 13 => "maskin", 14 => "sukker", 15 => "gamasje", 16 => "tulipan", 17 => "sorg", 18 => "grums", 19 => "blabb", 20 => "mystikk", ); for($a = 1; $a <= 5; $a++); echo"$sitat[rand(1,10)]"; echo"$sitat[rand(11,20)]"; echo"<br />\n"; echo"$sitat[rand(1,10)]"; echo"$sitat[rand(11,20)]"; echo"<br />\n"; echo"$sitat[rand(1,10)]"; echo"$sitat[rand(11,20)]"; echo"<br />\n"; echo"$sitat[rand(1,10)]"; echo"$sitat[rand(11,20)]"; echo"<br />\n";?> Lenke til kommentar
anbe4 Skrevet 7. november 2005 Del Skrevet 7. november 2005 Har ikke sett så nøye på scriptet, men jeg ville lagt rand komandoen inn i en løkke sammen med echo taggen. så ville jeg kjørt denne løkka 5 ganger, da vil du hente forskjellig ord ut hver gang du kjører løkka. <? $sitat = array( 1 => "katapult", 2 => "tåre", 3 => "danse", 4 => "emu", 5 => "froske", 6 => "hoppe", 7 => "drabant", 8 => "kule", 9 => "gusje", 10 => "rosa", 11 => "pulver", 12 => "dask", 13 => "maskin", 14 => "sukker", 15 => "gamasje", 16 => "tulipan", 17 => "sorg", 18 => "grums", 19 => "blabb", 20 => "mystikk", ); srand ((double) microtime() * 1000000); $i = 1; while( $i < 5){ $random = rand(1,10); $randomm = rand(11,20); echo"$sitat[$random]"; echo"$sitat[$randomm]"; echo"<br />\n"; $i++; } ?> Lenke til kommentar
Atch Skrevet 7. november 2005 Forfatter Del Skrevet 7. november 2005 Jøss, tusen takk! Det funka! Men om jeg vil ha flere linjer, da? Flere enn de fire som kommer nå? Hva skal jeg endre? Type for å få en lang liste med femti ulike kombinasjoner nedover? (Må selvfølgelig legge til flere arrays, da, men lurer på hva jeg skal gjøre med scriptet?) Tusen takk så langt! Lenke til kommentar
Atch Skrevet 7. november 2005 Forfatter Del Skrevet 7. november 2005 Fant ut av det! Bare endret while( $i < 5) til et høyere tall. TUSEN TAKK! Lenke til kommentar
Atch Skrevet 7. november 2005 Forfatter Del Skrevet 7. november 2005 (endret) Nei, forresten. Oppstår et problem når jeg hever det tallet. Innimellom kommer det iblant et enslig ord, istedet for en kombinasjon. Det kommer ikke hver gang jeg oppdaterer sida, men ganske ofte. Hva er grunnen til dette? Hjelp? PS. Jo, det oppstår hver gang... (sjekka det nå). Hjelp? Endret 7. november 2005 av Atch Lenke til kommentar
anbe4 Skrevet 7. november 2005 Del Skrevet 7. november 2005 er du sikker på at det er noen verdi i alle postene i arrayet fra minimum på rand komandoen til maks på rand komandoen Lenke til kommentar
Magnus Holm Skrevet 7. november 2005 Del Skrevet 7. november 2005 (endret) Det er en grunn til at funksjonen array_rand finnes... <?php $ganger = 5; //Antall ganger $sitat = array( "katapult", "tåre", "danse", "emu", "froske", "hoppe", "drabant", "kule", "gusje", "rosa" ); $sitat2 = array( "pulver", "dask", "maskin", "sukker", "gamasje", "tulipan", "sorg", "grums", "blabb", "mystikk" ); $i = 0; $array_rand = array_rand($sitat, $ganger); $b = array_rand($sitat2, $ganger); foreach ($array_rand as $a) { echo $sitat[$a]; echo $sitat2[$b[$i]]; echo"<br />\n"; $i++; } ?> EDIT: Nå er koden testet, og den virker hos meg (XP, PHP5)... Endret 9. november 2005 av Judofyr Lenke til kommentar
Atch Skrevet 8. november 2005 Forfatter Del Skrevet 8. november 2005 (endret) Judofyr: Den viser fortsatt tall Endret 8. november 2005 av Atch Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå