Array nicht komplett ausgeben

Hallo Habo, ich stehe gerade vor folgendem Problem. Ich möchte ein Array ausgeben und das nicht komplett sondern nur bis KEY 10 oder so.
So gebe ich das Array aktuell aus
Code:
 foreach($files as $file)

Gibt es in PHP eine Möglichkeit das ganze mit einer Schleife oder so zu verbinden?
z.B. so :

Code:
do
{
 ausgeben

}while($[file]=10);
danach soll er abbrechen und mit späterem reload 
den arrayinhalt von key 11 - 19 ausgeben oder so.

Es geht um ein Gallerie Script von Xeno hier mal der komplette Source :
Ich möchte halt nicht direkt alle Bilder ausgeben sondern erst 10 oder 20 Stück und später z.b. auf einen submit-button klicken können um das Array weiter auszugeben.

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//DE">
<html><head><title>seuchenklaus.de/pic - picdump</title>
<style type="text/css">
   td {
      border: 1px solid #666;
   }
   body {
      font-family: verdana;
      font-size: 10px;
      font-weight: bold;
   }
</style></head>
<body>

<?php

$thumbs_in_row=2; //angezeigte Bilder pro Spalte
$max_thumb_width=300;//Bilderbreite
$max_thumb_height=300; //Bilderhöhe
echo "<table width=100%>\n"; 
$directory=opendir("./"); //Verzeichnis der Bilder
$act_file=1; 
$tdwidth=100/$thumbs_in_row; //Tabellenbreite
$zaehler=0; //Zähler für Ausgabe

$files=array();
while(false !== ($file=readdir($directory)))
{ $files[]=$file; }
sort($files); //Sortiert Array mit Bildern


foreach($files as $file) //gibt Array aus
{
	
         $filetype=substr($file, -4);
   if(   $filetype==".jpg" || $filetype==".JPG" || $filetype==".Jpg" ||
         $filetype==".gif" || $filetype==".GIF" || $filetype==".Gif" ||
         $filetype==".png" || $filetype==".PNG" || $filetype==".Png" )
   {
      $size=getimagesize($file);
      if( $size[0]>$size[1] )
      {
         $div=$size[0]/$max_thumb_width;
         $img_width=$max_thumb_width;
         $img_height=$size[1]/$div;
      }
      else if( $size[1]>$size[0] )
      {
         $div=$size[1]/$max_thumb_height;
         $img_width=$size[0]/$div;
         $img_height=$max_thumb_height;
      }
      if( $act_file==1 )
      {
         echo "\t<tr width=100%>\n";
      }
      echo "\t\t<td width=$tdwidth% align=center valign=middle>\n\t\t\t<a href=$file target=_self><img src=$file width=$img_width height=$img_height border=0></a><br><span class=.filename>$file</span>\n\t\t</td>\n";
      $act_file++;
      if( $act_file>$thumbs_in_row )
      {
         echo "\t</tr>\n";
         $act_file=1;
      }
   }
	
}
echo "</table>";
?>

</body>
</html>
 
Ja, die Möglichkeit gibt es.

PHP:
$cnt = sizeof($files);
$limit = 10;
$limit = ($limit > $cnt) ? $cnt : $limit;

for ($i = 0; $i < $limit; $i++) {
    echo $files[$i];
}
 
buuuh, jetzt sieht jeder meinen grausamen code ;( :P

PS.: ah, der ist ja schon ein wenig angepasst. kann ich mich ja gut rausreden *fg*
 
@BasicAvid ich hab nicht sonderlich viel erfahrung mit php darum könntest du diese Zeile
PHP:
$limit = ($limit > $cnt) ? $cnt : $limit;
bitte erläutern.
Falls hier was anderes gemacht wird außer zu überprüfen ob $files überhaupt 10 Einträge hat und falls nicht $limit auf die Anzahl der Einträge reduziert.

ich hätte das mit:
PHP:
if($limit>$cnt)$limit = $cnt;
gelöst

Mfg Mechanius
 
Die beiden Schreibweisen sind gleichwertig, obwohl deine in diesem Fall für die Meisten wahrscheinlich verständlicher ist ;)
Man könnte es auch so schreiben:
PHP:
($limit > $cnt) ? $limit = $cnt;
Letztendlich ist es Geschmackssache. :)

Mfg, Eydeet
 
ums nochmal deutlich zu machen.

PHP:
<?php $limit = ($limit > $cnt) ? $cnt : $limit;>

heisst hier, prüfe auf true, wenn $limit > $cnt = true, schreibe $cnt sonst $limit
das is ne kurzform von nem if then construct.
 
Zurück
Oben