D.: Array: Löschen & "aufrücken" der Einträge?

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.

  1. 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

    1. Grüße,
      wieso nicht gleich array_shift() ?
      MFG
      bleicher

      --
      __________________________-
      Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
      http://www.sexgott-or-not.com/?test=428054
      1. 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

  2. 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";

  3. Grüße,
    also selbst wenn man foreach() nicht kennt - for() schleife sollte irgendwie bekannt sein? wenn man schon unset() kennt etc.?
    MFG
    bleicher

    --
    __________________________-
    Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
    http://www.sexgott-or-not.com/?test=428054
    1. 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

      1. 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

        --
        __________________________-
        Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
        http://www.sexgott-or-not.com/?test=428054
      2. 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

        --
        "The Internet: Technological marvel of marvels - but if you don't know *what* you're lookin' for on the Internet, it is nothing but a time-sucking vortex from hell."