Habe mich ein paar Stunden an diesem Kopf kratzt, scheint ein albernes Problem, aber kann einfach keine Lösung finden.Array-Element hinzufügen und dann neues Array neu bewerten
Hier ist mein Beispielcode:
$continueLoop = true;
$colorsArray = array("red", "white", "blue");
while($continueLoop == true) {
$arrayCount = count($colorsArray);
for ($i=0; $i < $arrayCount; $i++) {
echo "evaluating ".$colorsArray[$i]."<br>";
if($colorsArray[$i] == "blue") {
array_push($colorsArray, "YELLOW");
break;
}
}
if(count($colorsArray) == 4) {
$continueLoop = false;
}
}
Es gibt
rot
weiß
blau
Grundsätzlich Ich füge eine Farbe "GELB" hinzu und dann sollte es wieder durch das ganze Array gehen. Aber es ignoriert das neu hinzugefügte Array-Element.
Ich weiß, dass es das Element erkennt, weil die while-Schleife weiterläuft, bis $ colorsArray 4 Elemente hat (am Anfang hat es nur 3).
Also warum ist Echo'ing nicht "GELB"?
Ich habe ein paar verschiedene Lösungen versucht, nur das Element drückt mit $ array [] unter Verwendung von foreach, array_values etc. etc.
Danke
Update:
Wenn ich setzte
if (count ($ colorsArray) == 10) {
noch immer noch nicht Gelb drucken
Sie verhindern insbesondere die weitere Iteration mit '$ ContinueLoop = false;' Befehl ... – arkascha
auch brechen, wenn sich nicht gelb-Index zeigen – Farhan
Sie brechen aus dem 'for' und stellen Sie dann' $ ContinueLoop = false ", also ist alles erledigt und es wird nicht mehr wiederholt, um gelb zu leuchten. – AbraCadaver