Christof: Array mit fehlenden Key durchiterieren

Tach *.*

Folgendes Problem:
Ich will ein Array wie folgt durchiterieren

for ($i = 2; $i <= $this->consData->sheets[0]['numRows']; $i++)
{

echo "<tr>";
 echo "<td>".$this->consData->sheets[0]['cells'][$i][1]."</td>";
 echo "<td>".$this->consData->sheets[0]['cells'][$i][2]."</td>";

usw.

Ihr erkennt vielleicht, es handelt sich dabei um ein Array, dass ich von Spreadsheet_Excel_Reader zurückbekomme. Dumm allerdings, dass dieser bei leeren Zellen (im Excessblatt) keine Keys für die Spalte ausgibt. Die Spalte ist bei mir die letzte eckige Klammer. Hier sieht man [1] und [2].

Und jetzt die Frage:
Kann ich das Array trotzdem von 1 bis x durchiterieren und fehlende Keys oder Spalten abfangen (durch Leerstrings ersetzen)?

Danke für jede Antwort!

  1. Hallo Christof.

    Kann ich das Array trotzdem von 1 bis x durchiterieren und fehlende Keys oder Spalten abfangen (durch Leerstrings ersetzen)?

    Ja, indem du prüfst, ob das entsprechende Element existiert.

    Einen schönen Mittwoch noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules
  2. hi,

    Kann ich das Array trotzdem von 1 bis x durchiterieren und fehlende Keys oder Spalten abfangen (durch Leerstrings ersetzen)?

    foreach plus Zählvariable?

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  3. echo $begrüßung;

    Kann ich das Array trotzdem von 1 bis x durchiterieren und fehlende Keys oder Spalten abfangen (durch Leerstrings ersetzen)?

    Prüfe mit isset() ob das Element existiert, bevor du zuzugreifen versuchst.
    Ansonsten kann man mit foreach über alle wirklich vorhandenen Elemente iterieren, hat dann aber auch nur Schleifendurchläufe für die existierenden Elemente.

    echo "$verabschiedung $name";

  4. Servus dedllfix, wahsaga, Mathias!

    Jo, besten Dank für eure Antworten!
    Foreach is problematisch, da er wirklich für jede Zahl etwas tun sollte, auch wenn diese im Array nicht existiert.

    Isset() ist genau das was ich gebraucht habe! Merci! :-)