Kann Array-Element 0 nicht verändern?!
Andreas
- php
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
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
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