Mal wieder ein Array Problem - Löschen des ersten Element

GandalfMobil

Grünschnabel
Hallo Leute.

Ich bin Hauke und hier im Forum ganz neu. Leider habe ich keine Antwort auf meine Frage gefunden, und musste also mal ran setzen und selbst schreiben :-D

Ich denke, dass ich einigermaßen Erfahrung mit PHP habe, aber mit Arrays bin ich noch nie gut ausgekommen. Die haben was gegen mich und ich etwas gegen sie. Leider kann ich in meinem aktuellen Projekt nicht um Arrays herrum, nur über Datenbanken usw, und das wäre etwas zu viel. Daher habe ich mich daran gesetzt und ein wenig rumprobiert, damit ich sämtlich Funktionen, die ich brauche, verstehe und laufen, damit ich später das Projekt nicht total zerstöre :-)

Wie kann ich ein Element aus einem Array löschen?
- Ich habe es mit unset($array[3]) für das 4. Element gemacht, dass läuft auch, aber sobald ich das erste Element löschen möchte, ist es zwar weg, aber wenn ich mit
for($i=0;$i<count($array);$i++){print$array[$i]}
anzeigen möchte, schreibt er mir an der Stelle eine leere Reihe, als wäre das Element noch vorhanden aber leer. Das Ziel ist es, dass wenn das erste Element gelöscht wird, dass zweite zum ersten wird etc.

Mache ich nur einen Denkfehler, oder wie kann man das realisieren?

Danke schonmal und viele Grüße aus Bremen,
Hauke
 
Das erste Element löscht Du mit [phpf]array_shift[/phpf].
In dem Fall, dass es möglich ist, dass ein Array nicht numerisch durchlaufende Indizes hat, sollte man die Schleife mit [phpf]foreach[/phpf] anstatt mit [phpf]for[/phpf] aufbauen.

Gruß hpvw
 
Super, vielen dank.
Die Funktion habe ich zwar auf der PHP Seite gesehen, aber in der Liste nicht so verstanden, dass damit das erste Element gelöscht wird.

Und danke für den Tip mit foreach.

Tolle Begrüßung, wenn man innerhalb von ein paar Minuten eine Antwort bekommt.
Danke :-)
 
Hallo!

Du MUSST den Array mit foreach() ausgeben, da Du ja das erste Element aus dem Array gelöscht hast, aber trotzdem deine for-Schleife bei $i = 0 anfängt den Array auszugeben. Da aber kein Element $array[0] mehr vorhanden ist, wird nur eine leere Reihe ausgegeben.
 
Zurück