Avatar billede rasmus_a Nybegynder
30. november 2005 - 22:14 Der er 14 kommentarer

randomize med array

Hej
Jeg har tre arrays (der skal dog være mulighed for at tilføje flere arrays). Jeg vil gerne have min index.php til at vælge en tilfældig af disse arrays og så kalde den array $skema.
Forklaring og script kommer her:

    <?php
    $foerste = array(1 => "groen2", "groen", "blaa", "blaa2", "blaa3", "lyseroed");
    $andet = array(1 => "lyseroed", "blaa3", "blaa2", "blaa", "groen", "groen2");
    $tredje = array(1 => "lyseroed", "blaa3", "blaa2", "blaa", "lys", "lys2");
    ?>


Senere bruges det så på denne måde:

<td background="pic/tdbg/<?php skema[1] ?>.gif">


Så altså når den har valgt en array skal den kalde den array for $skema så TD'erne på sitet kan bruge indholdet fra samma tilfældige array.

Giver det mening?

På forhånd tak.
Avatar billede Slettet bruger
30. november 2005 - 22:18 #1
Givet jeg har forstået dit spørgsmål, kan du så ikke putte dine tre arrays ind i et array, og vælge et af disse elementer med array_rand()?

--
pacroon
Avatar billede rasmus_a Nybegynder
30. november 2005 - 22:24 #2
?php
srand((float) microtime() * 10000000);
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
?>

Sådan?

Hvor smider jeg de tre, eller flere, arrays ind?
Avatar billede Slettet bruger
01. december 2005 - 00:02 #3
Jeg gætter på noget á la:

$nyt_array = array($forste, $anden, $tredje);
$rand_keys = array_rand($nyt_array);

$randomarray = $rand_keys[0];

Virker det?
Avatar billede rasmus_a Nybegynder
01. december 2005 - 00:07 #4
prøver det lige - øjeblik
Avatar billede rasmus_a Nybegynder
01. december 2005 - 00:10 #5
nej desværre - siden er bare blank.

her er mit test script:

    <?php
    $foerste = array("groen2", "groen", "blaa", "blaa2", "blaa3", "lyseroed");
    $andet = array("lyseroed", "blaa3", "blaa2", "blaa", "groen", "groen2");

    $skema = array($forste, $anden);
    $rand_keys = array_rand($skema);

    $randomarray = $rand_keys[0];


    echo $skema[1]

    ?>
Avatar billede Slettet bruger
01. december 2005 - 00:14 #6
Du skal jo også echo'e $randomarray[1] ;)
Avatar billede ranglen Nybegynder
01. december 2005 - 00:16 #7
dit skema array, tjek lige navnene på de arrays du angiver, og så dem du rent faktisk har oprettet :o
Avatar billede showsource Seniormester
01. december 2005 - 00:19 #8
Du kan

<?php
$farver = array("et" => array("blaa", "gul", "sort"), "to" => array("hvid", "brun", "graa"), "tre" => array("sort", "groen", "hvid"));

echo"Hele array'et:";
print_r($farver);

$mulige = array_keys($farver);
echo "<p>Array'et \$mulige == ";

print_r($mulige);

$udvaelg = array_rand($mulige);
echo "<p>\$udvaelg == ". $udvaelg;

echo "<p>Hvilket array i \$farver har vi fat i? ( \$mulige[\$udvaelg] ) == ". $mulige[$udvaelg];
echo "<p> \$farver[\$mulige[\$udvaelg]] er så: </p>";

print_r($farver[$mulige[$udvaelg]]);

?>
Avatar billede rasmus_a Nybegynder
01. december 2005 - 00:19 #9
doh - det er ved at være sent :)

nu ser den sådan her ud:
    <?php
    $foerste = array("groen2", "groen", "blaa", "blaa2", "blaa3", "lyseroed");
    $andet = array("lyseroed", "blaa3", "blaa2", "blaa", "groen", "groen2");

    $skema = array($foerste, $andet);
    $rand_keys = array_rand($skema);

    echo $randomarray = $rand_keys[1];

    echo $skema[0];
    ?>


output = "Array"
Avatar billede ranglen Nybegynder
01. december 2005 - 00:23 #10
echo $skema[$rand_keys][0];

printer "groen2" eller "lyseroed"
Avatar billede rasmus_a Nybegynder
01. december 2005 - 00:27 #11
showsource, tak for din kommentar.

men jeg har brug for at kunne indtaste "echo $skema[1]" og "echo $skema[2]" osv.. i min php fil.
Avatar billede showsource Seniormester
01. december 2005 - 00:28 #12
?
echo "<p>". $farver[$mulige[$udvaelg]][0] ." - ". $farver[$mulige[$udvaelg]][1] ." - ". $farver[$mulige[$udvaelg]][2];
Avatar billede rasmus_a Nybegynder
01. december 2005 - 00:29 #13
langlen, det er perfekt! tak :)

så bruger jeg bare "echo $skema[$rand_keys][0];", "$skema[$rand_keys][1];" osv..

smid et svar :D
Avatar billede coderdk Praktikant
01. december 2005 - 19:37 #14
shuffle($array);

http://dk2.php.net/shuffle
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester