Zufallsbilder ohne Doppler extraschwer!

Quests Sohn

Mitglied
Hallo Forum,

ich brauche dringend Hilfe bei einem Script, das ich einfach nicht hin bekomme:

Ich möchte einen Zufallsgenerator schreiben, der aus einer vorgegebenen Anzahl
von Bildern aus einem Array n Bilder verteilt auf einer Webseite anzeigt, ohne
dass es zu Dopplern kommt.

Mein Code ("n" wird hier von $seitenbilder festgelegt):

$bild[0] = "bilder/01.jpg";
$bild[1] = "bilder/02.jpg";
$bild[2] = "bilder/03.jpg";
$bild[3] = "bilder/04.jpg";

if (!isset($seitenbilder)) { $seitenbilder = "1"; }

function gen_zahlen($min, $max, $anz) {
$werte = range($min, $max);
mt_srand((double)microtime()*1000000);
for ($x = 0; $x < $anz; $x++) {
$i = mt_rand(1, count($werte))-1;
$erg[] = $werte[$i];
array_splice($werte, $i, 1);
}
return $erg;
}
$bilder = count($bild)-1;
$zufalls_array = gen_zahlen(0, $bilder, $seitenbilder);
$bildausgabe = array();
foreach ($zufalls_array as $element) {
$bildausgabe .= $bild[element];
}
sort ($bildausgabe);
reset ($bildausgabe);
while (list ($key, $val) = each ($bildausgabe)) {
$bildausgabe[$key] = $val;
}

----------------------------------------------

Ich habe schon x Dinge ausprobiert, um als Ergebnis ein Array zu erhalten,
dass ich dann auf der eigentlichen Seite einsetzen kann.

Und so soll das Bild dann in HTML eingesetzt werden:

<img src="<?php echo $bildausgabe[1]; ?>" width="100" height="100"> ...


Kann mir irgendwer weiterhelfen?
 
Hm, zum Verständnis: du hast also ein Array von Bildern, aus dem du eine bestimmte Anzahl von Bildern in zufälliger Reihenfolge herausfischen willst? Wenn ja, dann ist das ganz einfach:

PHP:
<?
$bild = array("bilder/01.jpg", "bilder/02.jpg", "bilder/03.jpg", "bilder/04.jpg");

shuffle($bild); // Array zufällig anordnen
$bildausgabe = array_slice(0, $seitenbilder, $bild); // Die ersten $seitenbilder Einträge isolieren

// ... Ausgabe etc.
?>

Dein Code war leider sehr schlecht lesbar, benutze in Zukunft bitte PHP-Tags (
PHP:
 code
)
 
Hallo Matthias,

vielen Dank, Du hast mir sehr geholfen! Genau so gehts.
Das nächste mal werde ich PHP-Tags einsetzen, das wusste ich nicht.
 
Zurück