Gå til innhold

Ulike random arrays på rekke?


Anbefalte innlegg

Skrevet

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:

Videoannonse
Annonse
Skrevet

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";

}

Skrevet

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";?>

Skrevet

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++;
}
?>

Skrevet

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

Skrevet (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 av Atch
Skrevet

er du sikker på at det er noen verdi i alle postene i arrayet fra minimum på rand komandoen til maks på rand komandoen

Skrevet (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 av Judofyr

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...