Andreas: Kann Array-Element 0 nicht verändern?!

Hallo!
Ich möchte in einem mehrdimensionelen Array mit einer Funktion den Wert "Anzahl" um 1 erhöhen. Und zwar wie folgt:

$warenkorb[$i]["Anzahl"]++;

Das klappt alles super, solange $i > 0 ist, bei Null reagiert er einfach nicht! Versteh das jemand?

var_dump() des Array sieht z.B. so aus:

array(1){ ["warenkorb"]=> &array(3)
          { [0]=> array(4) { ["produktID"]=> int(1025008120) ["Beschreibung"]=> string(5) "234ß4" ["Preis"]=> string(3) "234" ["Anzahl"]=> int(3) }
            [1]=> array(4) { ["produktID"]=> int(1025008121) ["Beschreibung"]=> string(5) "234ß4" ["Preis"]=> string(3) "234" ["Anzahl"]=> int(6) }
            [2]=> array(4) { ["produktID"]=> int(1025008123) ["Beschreibung"]=> string(5) "234ß4" ["Preis"]=> string(3) "234" ["Anzahl"]=> int(4) } } }

die komplette Funktion sieht so aus:

function plus ($i) {
        $warenkorb = $_SESSION["warenkorb"];
        $warenkorb[$i]["Anzahl"]++;
        $_SESSION["warenkorb"] = $warenkorb;

}

Jemand ne Idee woran das liegen könnte?

Viele Grüße
Andreas

  1. Hallo!

    Ich habe ein wenig weitergetestet, dabei habe ich festgestellt, das die Funktuion mit dem parameter $i = 0 erst gar nicht aufgerufen wird!!!

    if($i){
    $i=intval($i);
    plus("$i");}

    function plus ($i) {
     echo "i:".$i."<br>";
            $warenkorb[$i]["Anzahl"]++;
        }

    Bei $i = 1 wird "i:1" ausgegeben, bei $i = 0 gar nichts.Hat das was mit =0FALSE oder sowas zu tun? Wie kann man das umgehen? Habe das mit $i=intval($i); versucht, bringt aber nichts.

    Das Problem ist glaube ich if($i), wie kann ich testen, ob $i gesetzt, ohne bei $i=0 FALSE zu erhalten?

    Grüße
    Andreas

    1. Hallo!
      Hat sich erledigt, anstatt if($i) einfach if(isset($i)), eigentlich logisch, hoffentlich habe ich den Fehler nicht unbemerkt schon öfter gemacht...
      Grüße
      Andreas