Klaus Achtern: Anzahl Datensätze bei foreach eingrenzen

Hallo Forumer,

ich bin ein RSS-Feed in meiner Webseite ein.

Nun möchte ich nicht alle Artikel einbinden, sondern nur die fünf aktuellsten.

Der Code-Schnippsel für die Ausgabe beginnt mit:

foreach ($rssItems as $item) {

Ich denke ich benötige nur ein Pendant zu "foreach" um die Anzahl einzugrenzen - oder?

Vielen Dank für Hilfe, Klaus

Den Code habe ich von -> http://www.heise.de/ct/ftp/04/26/238/

Anbei der ganze Code-Schnippsel für die Ausgabe PHP

<?php
// include the parser class
require_once ("RSSParser.class.php");

$rssParser = new RSSParser();

$rssSource = "http://beispiel.de/rss.rdf";

$rssFile = implode("",file($rssSource));

// start the parsing process
$rssParser->runRSSParsingProcess ($rssFile);

// get the arrays and print the information
$channelInfo = $rssParser->getRSSChannel();
$rssItems    = $rssParser->getRSSItems();

foreach ($rssItems as $item) {

$titel = $item["title"];
  $link = $item["link"];

// Ausgabe

echo "<br>";
  echo "<span class="rssItem">";
  echo $pubDate;
  echo "</span>";
  echo "<br>";
  echo "<a href="".$link."">";
  echo "<span class="rssItem">";
  echo $titel;
  echo "</span>";
  echo "</a>";
} // foreach

?>

  1. hi,

    Nun möchte ich nicht alle Artikel einbinden, sondern nur die fünf aktuellsten. [...]
    Ich denke ich benötige nur ein Pendant zu "foreach" um die Anzahl einzugrenzen - oder?

    Ist das Array $rssItems mit einem nullbasierten, fortlaufenden nummerischen Index aufgebaut?
    Wenn ja, kannst du ganz einfach ein for-Schleife nutzen. Dabei sollte aber der Sonderfall, dass es mal weniger als fünf Einträge geben könnte, berücksichtigt werden.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Hallo wahsaga.

      Nun möchte ich nicht alle Artikel einbinden, sondern nur die fünf aktuellsten. [...]
      Ich denke ich benötige nur ein Pendant zu "foreach" um die Anzahl einzugrenzen - oder?

      Ist das Array $rssItems mit einem nullbasierten, fortlaufenden nummerischen Index aufgebaut?
      Wenn ja, kannst du ganz einfach ein for-Schleife nutzen.

      Sollte dem nicht so sein und man ist auf foreach angewiesen, kann man natürlich immer noch vor dieser Schleife einen Variable mit einem passenden Ausgangswert festlegen, welche in der Schleife immer um eins erhöht wird. Zusätzlich muss sich dann natürlich auch in der Schleife eine Abfrage befinden, die – falls die Variable den Abbuchwert enthält – die Schleife abbricht.

      Einen schönen Donnerstag noch.

      Gruß, Mathias

      --
      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
      debian/rules
    2. echo $begrüßung;

      Nun möchte ich nicht alle Artikel einbinden, sondern nur die fünf aktuellsten. [...]
      Ich denke ich benötige nur ein Pendant zu "foreach" um die Anzahl einzugrenzen - oder?

      Ist das Array $rssItems mit einem nullbasierten, fortlaufenden nummerischen Index aufgebaut?
      Wenn ja, kannst du ganz einfach ein for-Schleife nutzen.

      Wenn nein und $rssItems ist ein echtes Array und kein Objekt mit implementiertem Iterator- bzw. IteratorAggregate-Interface (siehe Standard PHP Library (SPL) Functions) bietet sich außerdem noch an, mittels array_values() aus $rssItems ein garantiert numerisch indexiertes Array zu erhalten.

      echo "$verabschiedung $name";

    3. erstmal danke für die antworten.

      die for-schleife müsste ich doch an dieser stelle einbauen - oder?

      // class constructor
        function RSSParser() {

      $this->strLastParsingError  = array();
          $this->arrRSSChannel        = array();
          $this->arrRSSItems          = array();
          $this->inxRSSItems          = 0;
          $this->strLastData          = "";
          $this->intOnRecording       = 0;
          $this->objParser            = xml_parser_create();

      hi,

      Nun möchte ich nicht alle Artikel einbinden, sondern nur die fünf aktuellsten. [...]
      Ich denke ich benötige nur ein Pendant zu "foreach" um die Anzahl einzugrenzen - oder?

      Ist das Array $rssItems mit einem nullbasierten, fortlaufenden nummerischen Index aufgebaut?
      Wenn ja, kannst du ganz einfach ein for-Schleife nutzen. Dabei sollte aber der Sonderfall, dass es mal weniger als fünf Einträge geben könnte, berücksichtigt werden.

      gruß,
      wahsaga