Gå til innhold

Ulike random arrays på rekke?


Anbefalte innlegg

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! :w00t:

Lenke til kommentar
Videoannonse
Annonse

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

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

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!

 

:p

Lenke til kommentar

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 av Atch
Lenke til kommentar

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 av Judofyr
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...