Avatar billede janiz Nybegynder
29. september 2003 - 14:42 Der er 11 kommentarer og
1 løsning

Random udfra array?

hej jeg har en webside der skal vise 6 random billeder udfra en stak på 50. Billederne skal ændres hvergang siden loades så der skal hentes 6 random billeder feks. 2,5,8,34,50,6 udfra hele mængden (50) disse 6 billeder skal så sættes = hver deres variabel navn: billede1 = 2, billede2 = 5... osv

det samme billede må ikke forekomme 2 gange på siden.

Håber i kan hjælpe :)
Avatar billede detox Nybegynder
29. september 2003 - 15:08 #1
Du kunne bruge array_rand():

function Numre($antal = 6) {
    $numre = range(0,49);
    return array_rand($numre,$antal);
}
$billed_nr = Numre();
foreach ($billed_nr as $val) {
    echo $val."<br />";
}
Avatar billede janiz Nybegynder
29. september 2003 - 15:21 #2
jeg skal kunne bruge de enkelte variabler efter den har snuppet dem fra arrayet så jeg kan placere billederne hvor jeg vil have dem.. er det muligt med din løsning?
Avatar billede janiz Nybegynder
29. september 2003 - 15:22 #3
og vil den ikke komme til at trække det samme billede ud 2 gange en gang i mellem?
Avatar billede detox Nybegynder
29. september 2003 - 15:30 #4
Ja, funktionen returnerer 6 forskellige tal fra 0-49. I eksemplet bliver de bare printet ud, men du kan i princippet gøre med dem, hvad du vil. Og, nej den giver ikke samme tal flere gange.
Avatar billede detox Nybegynder
29. september 2003 - 15:37 #5
Jeg kunne forestille mig, du kunne bruge noget i den her stil:

function Numre($antal = 6) {
    $numre = range(0,49);
    return array_rand($numre,$antal);
}
$billed_nr = Numre();
foreach ($billed_nr as $val) {
    echo "<img src='img/billede".$val.".jpg'>";
}
Avatar billede janiz Nybegynder
29. september 2003 - 16:38 #6
jeg er ikke så god til php, så det er lidt svært at forstå hvordan jeg kan arbejde med de individuelle billeder? I denne del af din kode:
}
$billed_nr = Numre();
foreach ($billed_nr as $val) {
    echo "<img src='img/billede".$val.".jpg'>";
}

der kan jeg ikke se at den referer til et bestemt af de 6 billeder?
er det meningen at jeg skal gentage koden 6 gange?
Avatar billede detox Nybegynder
30. september 2003 - 01:46 #7
Det eksempel jeg har lavet er ret minimalt. Det vil vise 6 billeder umiddelbart efter hinanden (skal nok ind i en tabel e.l.) og det kræver at billederne ligger i en mappe der hedder 'img' og hedder: billede1, billede2, osv.
Avatar billede detox Nybegynder
30. september 2003 - 02:04 #8
Her er eksempel der viser 2 billeder pr række i 3 rækker:

<?
$antal_billeder = 6;
$billeder_pr_raekke = 2;
$billeder_ialt = 50;
$numre = range(1,$billeder_ialt);
$billed_nr = Numre($numre,$antal_billeder);
$i = 0;
echo "<table><tr>";
foreach ($billed_nr as $val) {
    echo "<td><img src='img/billede".$numre[$val].".jpg'></td>";
    $i++;
    if (!fmod($i,$billeder_pr_raekke)) echo "</tr><tr>";
}
echo "</tr></table>";

function Numre($numre,$antal) {
    return array_rand($numre,$antal);
}
?>
Avatar billede janiz Nybegynder
30. september 2003 - 04:41 #9
ok du har misforstået mig det er derfor :-) jeg skal ikke have de 6 billeder udskrevet, men blot smidt i 6 variabler som jeg kan putte ind de steder på min webside hvor de 6 random billeder vises! som feks:
<img src="billeder/<? billede_variabel_1 ?>.jpg"> osv så altså den henter 6 billeder af de 50 og smider dem i hver deres variabel som jeg så kan bruge til at linke til dem med senere hvor jeg nu har lyst til det på den side.. det eneste du skal bruge en løkke til er at smide de 6 billeder er hver deres Variabel navn :)

håber det giver mening nu.
Avatar billede detox Nybegynder
30. september 2003 - 12:09 #10
Ok, så gør du blot sådan:

<?
$antal_billeder = 6;
$billeder_ialt = 50;
$numre = range(1,$billeder_ialt);
$billed_nr = array_rand($numre,$antal_billeder);
$i = 0;
foreach ($billed_nr as $val) {
    $i++;
    $billed[$i] = "img/billede".$numre[$val].".jpg";
}
?>

Så ligger dine variabler i billed[] arrayet og du kan bruge dem sådan:

echo "<img src=".$billed[1]." />";
echo "<img src=".$billed[2]." />";
Avatar billede janiz Nybegynder
30. september 2003 - 13:32 #11
perfekt :) mange tak.. jeg synes ikke jeg kan se hvordan jeg accepterer svaret?
Avatar billede detox Nybegynder
30. september 2003 - 13:37 #12
Der manglede et svar. c",)
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