Enrico: Kann Array nicht auf "leer" bzw. keinen Inhalt prüfen

Beitrag lesen

Hallo,

Mist, ich stecke fest und habe mich zu früh gefreut.

Ich habe folgende Bildschirmausgabe über var_dump:

Array (2)
(
|    ['ID'] = String(32) "c2e3a24865035b4ee5f7272d30e13528"
|    ['Warenkorb'] => Array (0)
|    (
|    )
)

Dies bedeutet für mich, dass $_SESSION['Warenkorb'] als Array besteht, aber leer ist bzw. keinen Inhalt hat.

Beim Hinzufügen neuer Artikel prüfe ich, ob schon Inhalte hinterlegt sind oder nicht.

Wenn nicht, dann soll der String $Bestellposition dem Array $_SESSION['Warenkorb'] ohne weiteren Abgleich auf bereits vorhandene Artikel hinzugefügt werden.

Sind bereits Artikel vorhanden, dann erfolgt ein Abgleich, ob der hinzuzufügende Artikel bereits vorhanden ist und dann nur die Anzahl ($Spalte[3]) um Eins und die Gesamtsumme ($Spalte[5]) um den Einzelpreis ($Spalte[4]) erhöht.

Der zugehörige Code sieht folgendermaßen aus:

  
if (empty ($_SESSION['Warenkorb']))  
{  
   array_push ($_SESSION['Warenkorb'], $Bestellposition);  
}  
else  
{  
   for ($i = 0; $i < count ($_SESSION['Warenkorb']); $i++)  
   {  
      if (strpos ($_SESSION['Warenkorb'][$i], $Bezeichnung) !== false)  
      {  
         $ArtikelVorhanden = "ja";  
  
         $Spalte = explode ("|", $_SESSION['Warenkorb'][$i]); // Bezeichnung|Größe|Farbe|Anzahl|Einzelpreis|Summe  
  
         $Spalte[3] += 1;  
         $Spalte[5] += $Spalte[4];  
  
         $Bestellposition = implode ("|", $Spalte);  
  
         $_SESSION['Warenkorb'][$i] = $Bestellposition;  
  
         break;  
      }  
   }  
  
   if ($ArtikelVorhanden == "nein")  
   {  
      array_push ($_SESSION['Warenkorb'], $Bestellposition);  
   }  
}  

Aber ich komme nicht in den ersten Zweig meines Codes, der ja zutreffen müsste.

Schreibe ich nun if ($_SESSION['Warenkorb'][0] === "") anstatt if (empty ($_SESSION['Warenkorb'])), dann bekomme ich für diese Anweisung den Hinweis "Notice: Undefined offset: 0".

Wie muss ich das Konstrukt korrekt auf "Leere" bzw. keinen Inhalt prüfen?

Vielen Dank für eure Hilfe.

Gruß
Enrico