Array: Löschen & "aufrücken" der Einträge?
D.
- php
Hallo!
Ich habe in einem Array alle Dateinamen aus einem Verzeichnis gespeichert und anschließend sortiert. Jetzt möchte ich sie mit Hilfe einer Schleife nacheinander ausgeben (bzw. anzeigen, es handelt sich um Bilder). D.h. der "Anzeigeteil" wird aufgerufen und mit dem Pfad + alist[0] angezeigt. Das funktioniert beim ersten Element gut. Danach habe ich den Befehl
unset(alist[0]);
eingefügt, um das erste Element zu löschen. Danach wird die Schleife wieder durhclaufen, so lange, bis alle Elemente ausgegeben wurden. Von der Anzahl haut das hin, aber ab dem zweiten Element findet er die Dateinamen nicht mehr.
Anscheinend habe ich da eine falsche Auffassung der Arrays: Wenn ich [0] lösche, rücken die anderen nicht automatisch auf, oder? Dann ist [1] die erste Stelle, oder?
Wie sorge ich dafür, dass die Plätze immer aufrücken, sodass ich in der Schleife immer den [0]-Wert aufrufen kann - und ihn danch löschen, damit der nächste Wert auch stimmt ...
Danke!
LG,
D.
Wie sorge ich dafür, dass die Plätze immer aufrücken, sodass ich in der Schleife immer den [0]-Wert aufrufen kann - und ihn danch löschen, damit der nächste Wert auch stimmt ...
Es gibt sicherlich mehrere Möglichkeiten dafür. Im Manual darfst Du dir bestimmt eine davon aussuchen;-)
Ein Beispiel, das hier zwar nicht ganz zutrifft aber dennoch Verwendung finden könnte in Kombi mit array_reverse:http://php.net/manual/de/function.array-pop.php
Heinz
Grüße,
wieso nicht gleich array_shift() ?
MFG
bleicher
Hi,
wieso nicht gleich array_shift() ?
Habe doch extra geschrieben, er soll sich was aussuchen weil mein Beispiel nicht ganz zutreffend ist. Aber du hast natürlich recht.
Heinz
echo $begrüßung;
Jetzt möchte ich sie mit Hilfe einer Schleife nacheinander ausgeben [...]
Was spricht denn gegen die Verwendung von foreach?
echo "$verabschiedung $name";
Grüße,
also selbst wenn man foreach() nicht kennt - for() schleife sollte irgendwie bekannt sein? wenn man schon unset() kennt etc.?
MFG
bleicher
Hi,
also selbst wenn man foreach() nicht kennt - for() schleife sollte irgendwie bekannt sein? wenn man schon unset() kennt etc.?
ich komme hier nicht mehr ganz mit. Verstehe ich den OP falsch oder ihr?
Er hat doch keine Problem mit einer Schleife oder doch?
Heinz
Grüße,|
Hi,
also selbst wenn man foreach() nicht kennt - for() schleife sollte irgendwie bekannt sein? wenn man schon unset() kennt etc.?
ich komme hier nicht mehr ganz mit. Verstehe ich den OP falsch oder ihr?
Er hat doch keine Problem mit einer Schleife oder doch?
Heinz
meine nur - wenn man ein array hat kann man den auf blöd mit for() durchlaufen lassenund jeweils array[$i] ausgeben bis eine fehlermeldung komtm die man abfängt oder unterdrückt.
wäre IMHO imme r noch besser als schleife mit array[0] ;)
MFG
bleicher
Hi,
ich komme hier nicht mehr ganz mit. Verstehe ich den OP falsch oder ihr?
Er hat doch keine Problem mit einer Schleife oder doch?
Er hat ein Problem, weil er *statt* einer simplen Schleife ueber alle Elemente im Array lieber am Array selber rumschnippeln will, um dann immer nur das erste Arrayelement auszugeben ...
MfG ChrisB