Rafael: Array neu sortieren.

Ich suche gerade nach einer Funktion von der ich mir sicher bin, dass sie existiert. Allerdings blieb jede Suche bisher erfolglos.

Ich habe ein Array im Sinne von:

3 => 'Wert1',
7 => 'Wert2',
9 => 'Wert3'

Daraus will ich erstellen:

0 => 'Wert1',
1 => 'Wert2',
2 => 'Wert3'

Also die Reihenfolge beibehalten, aber die Indzi zurücksetzen. Ich weiß, dass ich es mit ner Schleife machen kann, aber ich dachte dafür gibt es eine vordefinierte Funktion.
Kann mir einer sagen wie diese heißt? Danke!

  1. Lieber Rafael,

    Ich habe ein Array im Sinne von:

    3 => 'Wert1',
    7 => 'Wert2',
    9 => 'Wert3'

    Daraus will ich erstellen:

    0 => 'Wert1',
    1 => 'Wert2',
    2 => 'Wert3'

    das ist ein typischer Fall für sort().

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. sort() kenne ich, aber ich dachte es sortiert mir dann die Werte?
      Wenn statt Wert1 und Wert2 nun "Ziege" und "Apfel" herhalten würden, hätte ich die Reihenfolge doch vertauscht, oder?

      1. Hello,

        sort() kenne ich, aber ich dachte es sortiert mir dann die Werte?
        Wenn statt Wert1 und Wert2 nun "Ziege" und "Apfel" herhalten würden, hätte ich die Reihenfolge doch vertauscht, oder?

        Ja, aber Du hast so verknotet gefragt :-))

        Sieh Dir meine Vorschläge an und mach Dir vor allem klar, dass Arrays in PHP keine isomorphen Strukturen sind, sondern Baumstrukturen. Jedes Element darin kann anders aussehen, als das andere. Über die Anordnung im Speicher ist (dem PHP-Nutzer) nichts bekannt.

        Harzliche Grüße vom Berg
        http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau

  2. Hello,

    Ich habe ein Array im Sinne von:

    3 => 'Wert1',
    7 => 'Wert2',
    9 => 'Wert3'

    Daraus will ich erstellen:

    0 => 'Wert1',
    1 => 'Wert2',
    2 => 'Wert3'

    Die Funktion "Sort()" würde tatsächlich neu sortieren, aber Du schreibst hier, dass Du die Reihenfolge in der Elementekette beibehalten willst. Dafür eignen sich die Funktionen

    http://www.php.net/manual/en/function.array-slice.php und
    http://www.php.net/manual/en/function.array-splice.php

    oder nimm eine einfache Schleife:

    $_neu = array();
    foreach($_alt as $element)
    {
      $_neu[] = $element;
    }

    Dadurch beginnt $_neu bei [0] und wird bis n-1 hochgezählt für n = Anzahl von $_alt

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau

    1. Hello,

      oder benutze:

      http://www.php.net/manual/en/function.array-values.php

      $_neu = array_values($_alt);

      Harzliche Grüße vom Berg
      http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau