Maxi: Wenn Array Feld leer ist soll es nicht angezeigt werden

Hallo!

Ich habe eine For Schleife gebaut welches das ganze Array durchgeht und ausgibt.

Nur sind in einigen Feldern keine Werte drin dann sollen die auch nicht ausgeben werden!

Beispiel wie das Array aussehen könnte:
array(1,2,3,4,5,,7,,9,10,11,,13);

Und hier ist mein Code:

for ($i = 0; $i < $max; $i++ )
  {
  echo "<br>";
  echo "Art-Nr:
<a href='$i'>".$i."</a>    ";

$wert = $_SESSION['warenkorb'][$i]."<br>";

echo "\nAnzahl: ".$wert;
         }

Ausgabe:

Art-Nr: 1     Anzahl: 3

Art-Nr: 2     Anzahl:

Art-Nr: 3     Anzahl:

Art-Nr: 4     Anzahl: 1

Art-Nr: 5     Anzahl:

Art-Nr: 6     Anzahl:

Art-Nr: 7     Anzahl:

Art-Nr: 8     Anzahl:

Art-Nr: 9     Anzahl:

Art-Nr: 10     Anzahl: 4

Art-Nr: 11     Anzahl: 4

Nun sollen die Array Felder wo die Anzahl Artikel gleich Nichts ist auch nicht ausgeben werden nur wie mache ich das?

Hat einer eine Idee wie es geht?

Gruß Maxi

  1. Hallo!

    Ich habe eine For Schleife gebaut welches das ganze Array durchgeht und ausgibt.

    Nur sind in einigen Feldern keine Werte drin dann sollen die auch nicht ausgeben werden!

    Beispiel wie das Array aussehen könnte:
    array(1,2,3,4,5,,7,,9,10,11,,13);

    Und hier ist mein Code:

    for ($i = 0; $i < $max; $i++ )
      {
      echo "<br>";
      echo "Art-Nr:
    <a href='$i'>".$i."</a>    ";

    $wert = $_SESSION['warenkorb'][$i]."<br>";

    echo "\nAnzahl: ".$wert;
             }

    Ausgabe:

    Art-Nr: 1     Anzahl: 3

    Art-Nr: 2     Anzahl:

    Art-Nr: 3     Anzahl:

    Art-Nr: 4     Anzahl: 1

    Art-Nr: 5     Anzahl:

    Art-Nr: 6     Anzahl:

    Art-Nr: 7     Anzahl:

    Art-Nr: 8     Anzahl:

    Art-Nr: 9     Anzahl:

    Art-Nr: 10     Anzahl: 4

    Art-Nr: 11     Anzahl: 4

    Nun sollen die Array Felder wo die Anzahl Artikel gleich Nichts ist auch nicht ausgeben werden nur wie mache ich das?

    Hat einer eine Idee wie es geht?

    Gruß Maxi

    Ok hat sich schon erledigt!

    Danke!

  2. Hello,

    Hallo!

    Ich habe eine For Schleife gebaut welches das ganze Array durchgeht und ausgibt.

    Nur sind in einigen Feldern keine Werte drin dann sollen die auch nicht ausgeben werden!

    Beispiel wie das Array aussehen könnte:

    $_wk = array(1,2,3,4,5,,7,,9,10,11,,13);

    if (is_array($_wk))
      foreach($_wk as $artnr => $anzahl)
      {
        if (!empty($artikel))
        {
          echo "<p class="artikelanzeige">";
          echo "<a href="$artnr">Art-Nr: $artnr   $anzahl</a></p>";
        }
      }

    Da es eigentlich praktisch ist, die Artikelnummer als Index für das Array zu benutzen, ist eine For-Schleife ist für die Ausgabe nicht geeignet.
    Eine For-Schleife setzt für die Ausgabe eines Arrays einen lückenlosen Nummernkreis voraus.

    Wie muss man sich PHP-Arrays eigentlich vorstellen?

    Arrays sien eine Kette von Elementen. Der Anfangspunkt und der Endpunkt sind dem Programm bekannt. Jedes Element kennt seinen Vorgänger und seinen Nachfolger. Die Elemente tragen einen Namen (Schlüssel) und einen Wert, sowie ein paar weitere Verwaltungsinformationen, die uns nicht interessieren.

    Einfaches Array:
    <img src="http://bitworks.de/~selfHTML/EinfachesArray500.gif" border="0" alt="">

    Anstelle eines Wertes kann auch die Adresse eines Nachfolgers eingetragen sein. Wenn man das Elment dann mit echo ausgeben würde, schreibt uns PHP "Array" in die Ausgabe. Hier beginnt dann eine neue Dimension. An jedem Element eines Arrays kan so ein Subarray andocken und an jedem Elemetn eines Subarrays wieder ein "SubSubarray" und so weiter.

    Da wird es auch klar, dass man mit einer for-Schleife nichts mehr ausrichten kann. Man benötigt rekursive Methoden (foreach), um kein Lement des Arrays zu übersehen.

    Mehrdimensionales Array:
    <img src="http://bitworks.de/~selfHTML/VerzweigtesArray500.gif" border="0" alt="">

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    1. Hello,

      Hallo!

      Ich habe eine For Schleife gebaut welches das ganze Array durchgeht und ausgibt.

      Nur sind in einigen Feldern keine Werte drin dann sollen die auch nicht ausgeben werden!

      Beispiel wie das Array aussehen könnte:
        $_wk = array(1,2,3,4,5,,7,,9,10,11,,13);

      if (is_array($_wk))
        foreach($_wk as $artnr => $anzahl)
        {
          if (!empty($artikel))
          {
            echo "<p class="artikelanzeige">";
            echo "<a href="$artnr">Art-Nr: $artnr   $anzahl</a></p>";
          }
        }

      Da es eigentlich praktisch ist, die Artikelnummer als Index für das Array zu benutzen, ist eine For-Schleife ist für die Ausgabe nicht geeignet.
      Eine For-Schleife setzt für die Ausgabe eines Arrays einen lückenlosen Nummernkreis voraus.

      Wie muss man sich PHP-Arrays eigentlich vorstellen?

      Arrays sien eine Kette von Elementen. Der Anfangspunkt und der Endpunkt sind dem Programm bekannt. Jedes Element kennt seinen Vorgänger und seinen Nachfolger. Die Elemente tragen einen Namen (Schlüssel) und einen Wert, sowie ein paar weitere Verwaltungsinformationen, die uns nicht interessieren.

      Einfaches Array:
      <img src="http://bitworks.de/~selfHTML/EinfachesArray500.gif" border="0" alt="">

      Anstelle eines Wertes kann auch die Adresse eines Nachfolgers eingetragen sein. Wenn man das Elment dann mit echo ausgeben würde, schreibt uns PHP "Array" in die Ausgabe. Hier beginnt dann eine neue Dimension. An jedem Element eines Arrays kan so ein Subarray andocken und an jedem Elemetn eines Subarrays wieder ein "SubSubarray" und so weiter.

      Da wird es auch klar, dass man mit einer for-Schleife nichts mehr ausrichten kann. Man benötigt rekursive Methoden (foreach), um kein Lement des Arrays zu übersehen.

      Mehrdimensionales Array:
      <img src="http://bitworks.de/~selfHTML/VerzweigtesArray500.gif" border="0" alt="">

      Liebe Grüße aus http://www.braunschweig.de

      Tom

      In dem Fall ist mein Array lückenlos

      Es gibt zwar ein paar Felder wo nichts drin steht aber das tut ja nichts zur Sache oder?

      Es funktioniert ja.