PeTahGeh: unsichtbare Zeichen im Array-Element?

Hallo und guten Morgen,
Vielleicht kann mir wer auf die Sprünge helfen, ich komm einfach nicht hinter das Problem. :(

Wir bauen für unsere Datenbank ein Modul, dass eine Tab-stopp getrennte Text-Datei einlesen soll. Die Datei liegt auf einem anderen Server, und ist somit nicht beeinflussbar, d.h. ich muss sie so nehmen wie sie ist. :)

Also, die tabbstopp-getrennte .txt enthält mehrere Felder, die Anrede, Vorname, Nachname etc. enthalten:
Herr (Tab-Stopp) Feld1_1 (Tab-Stopp) Feld1_2 (Tab-Stopp) Feld1_3
     (Tab-Stopp) Feld2_1 (Tab-Stopp) Feld2_2 (Tab-Stopp) Feld2_3
Frau (Tab-Stopp) Feld3_1 (Tab-Stopp) Feld3_2 (Tab-Stopp) Feld3_3

Wir lesen die Datei in einen Array ein und gehen dann den Array durch, um ihn mit explode in einzelne Felder zu unterteilen. Aufgabenstellung ist das Erkennen und Löschen von Array-Elementen (einzelnen Personen), denen keine Anrede zugewiesen ist, sprich das Feld für die Anrede leer ist. (Zeile 2 ist in diesem Fall der "Ausbrecher".)

Ich zeig euch mal nen Beispiel-Code wie wir uns das vorgestellt haben:

for ($w=0;$w<sizeof($readed);$w++) {
   $temp_ses = explode($separator,$readed[$w]);
   for ($v=0;$v<sizeof($temp_ses);$v++) {
     $temp_ses[$v] = ltrim(rtrim($temp_ses[$v]));
   }
   if (is_null($temp_ses[0])) {
   unset ($readed[$w]);
   }
}

$separator ist "\t".
$readed ist der Array, der mit jedem Element eine Personen-Zeile mit allen Angaben enthält. Die Anrede befindet sich nach dem explode eigentlich im temporären Array-Element $temp_ses[0]. Ist $temp_ses[0] unbefüllt, also leer, soll aus dem importierten Array diese Zeile gelöscht werden.

Aber, verdammich noch mal, die Abfrage auf ein leeres Feld greift irgendwie nicht, obwohl nichts sichtbares in diesem Feld vorhanden ist. Wo liegt mein Denkfehler? Oder hat es was mit Sonderzeichen zu tun? Oh mann, ich komm nich dahinter :(

Vielen Dank im voraus schonmal für die Hilfe, Peter

  1. Moin Peter,

    if (is_null($temp_ses[0])) {

    Aber, verdammich noch mal, die Abfrage auf ein leeres Feld greift irgendwie nicht, obwohl nichts sichtbares in diesem Feld vorhanden ist. Wo liegt mein Denkfehler?

    Mit is_null() wird geprüft ob der Wert NULL ist.
    Da Du hier mit Strings arbeitest musst Du auf Leerstring testen.

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday
    1. Mit is_null() wird geprüft ob der Wert NULL ist.
      Da Du hier mit Strings arbeitest musst Du auf Leerstring testen.

      Vielen Dank nochmal für den Hint. Das war das Problem. ich überprüfe das element mit empty() oder if ($temp_ses[0]) . Warum bin ich da selber nicht drauf gekommen? :)