Banner Rotator um bestimmte Funktion erweitern.

cyox

Grünschnabel
Hallo Liebe Tutorials Community,

Ich habe einen Banner-Rotator auf meiner Webseite eingebaut der 12 Banner ausgibt, davon wird aber kein Banner doppelt angezeigt. Alles funktioniert Super wenn ich 12 Banner definiert habe zeigt er mir 12 verschiedende Banner an. Nun hätte ich das Script aber gerne um eine Funktion erweitert die es mir erlaubt wenn ich keine 12 Bannereinträge habe, das er dann anfängt doppelte Banner auszugeben. Statdessen zeigt er momentan dann nur die vorhandenen Einträge an, sprich wenn ich nur 4 Einträge habe zeigt er mir auch nur 4 Banner an.

Hier der Quellcode:

PHP:
<?php

$banners = array();
$banners[] = '<a href="http://zieladresse.com" target="_blank"><img src="banner1.jpg" width="468" height="60" border="0"></a>';
$banners[] = '<a href="http://zieladresse.com" target="_blank"><img src="banner2.jpg" width="468" height="60" border="0"></a>';
$banners[] = '<a href="http://zieladresse.com" target="_blank"><img src="banner3.jpg" width="468" height="60" border="0"></a>';
$banners[] = '<a href="http://zieladresse.com" target="_blank"><img src="banner4.jpg" width="468" height="60" border="0"></a>';
$banners[] = '<a href="http://zieladresse.com" target="_blank"><img src="banner5.jpg" width="468" height="60" border="0"></a>';
$banners[] = '<a href="http://zieladresse.com" target="_blank"><img src="banner6.jpg" width="468" height="60" border="0"></a>';
$banners[] = '<a href="http://zieladresse.com" target="_blank"><img src="banner7.jpg" width="468" height="60" border="0"></a>';
$banners[] = '<a href="http://zieladresse.com" target="_blank"><img src="banner8.jpg" width="468" height="60" border="0"></a>';
$banners[] = '<a href="http://zieladresse.com" target="_blank"><img src="banner9.jpg" width="468" height="60" border="0"></a>';
$banners[] = '<a href="http://zieladresse.com" target="_blank"><img src="banner10.jpg" width="468" height="60" border="0"></a>';
$banners[] = '<a href="http://zieladresse.com" target="_blank"><img src="banner11.jpg" width="468" height="60" border="0"></a>';
$banners[] = '<a href="http://zieladresse.com" target="_blank"><img src="banner12.jpg" width="468" height="60" border="0"></a>';
shuffle($banners);

// Ausgabe 1. Banner
echo array_pop($banners);

// Ausgabe 2. Banner
echo array_pop($banners);

// Ausgabe 3. Banner
echo array_pop($banners);

// Ausgabe 4. Banner
echo array_pop($banners);

// Ausgabe 5. Banner
echo array_pop($banners);

// Ausgabe 6. Banner
echo array_pop($banners);

// Ausgabe 7. Banner
echo array_pop($banners);

// Ausgabe 8. Banner
echo array_pop($banners);

// Ausgabe 9. Banner
echo array_pop($banners);

// Ausgabe 10. Banner
echo array_pop($banners);

// Ausgabe 11. Banner
echo array_pop($banners);

// Ausgabe 12. Banner
echo array_pop($banners);

?>

Ich vermute das es an dem Befehl:
PHP:
echo array_pop
liegt.

Ich hoffe hier hat jemand einen Tipp für mich wie sich sowas realisieren lässt.

Vielen Dank
 
Zuletzt bearbeitet:
Moin,

array_pop() liefert nicht nur das letzte Element des Arrays, es entfernt es auch aus dem Array.
Nach dem 4. array_pop() ist der Array leer. :eek:

Hier eine Variante:
Code:
<?php
  $banners = array(1,2,3,4);
  shuffle($banners); 
  $i=0;
  while($i<12)
  {
    echo '<br />'.$banners[0];
    array_push($banners,array_shift($banners));
    $i++;
  }
?>

Es wird immer das erste Element ausgegeben, und danach ans Ende des Arrays verfrachtet.
Code:
array_push($banners,array_shift($banners));
 
Zurück