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

Beitrag lesen

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.