Tim: Array sortieren, Indizes merken

Hallo!

Ich habe folgendes Problem in PHP: Ich habe zwei Arrays, beide gleichlang. Eines enthält Werte, das andere dazu passende Strings.

Beispiel:

Array1|Array2
------|------
  2   |  A
  5   |  X
  3   |  B
  1   |  C
  7   |  Z

Jetzt möchte ich das Array1 sortieren. An sich kein Problem. Sort() hilft hier weiter. Das Problem entsteht erst, wenn ich will, dass Array2 genauso sortiert wird, also quasi auch genauso geändert wird, wie Array1. Die Werte können allerdings zufällig sein, es ist also nicht gesagt, dass das kleinste Element in Array1 auch zwingend in Array2 an erste Stelle sortiert werden würde. Jemand da eine Idee?

Vielen Dank!
Tim

  1. Hi!

    Jetzt möchte ich das Array1 sortieren. An sich kein Problem. Sort() hilft hier weiter. Das Problem entsteht erst, wenn ich will, dass Array2 genauso sortiert wird, also quasi auch genauso geändert wird, wie Array1.

    Dann nimm halt nicht sort() sondern eine Funktion, die die Werte-zu-Schlüssel-Kombinationen beim Sortieren beibehält. Dann kannst du anschließend über das sortierte Array "foreachen" und über den Schlüssel auf das andere Array zugreifen.

    Lo!

  2. Hello Tim,

    das ist kein Problem, denn PHP stellt eine große Anzahl Arrayfunktionen zur Verfügung.

    http://de2.php.net/manual/en/ref.array.php

    Und darunter befinden sich z.B. asort() und natsort(), die deine Bedürfnisse befriedigen sollten.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
  3. Hi,

    Jetzt möchte ich das Array1 sortieren. An sich kein Problem. Sort() hilft hier weiter. Das Problem entsteht erst, wenn ich will, dass Array2 genauso sortiert wird, also quasi auch genauso geändert wird, wie Array1.

    Wenn zwischen den Daten ein Zusammenhang besteht (/bestehen soll), der nicht verloren gehen soll, wenn nur eines der Arrays manipuliert wird - dann solltest du eine geeignetere Datenstruktur wählen, die diesen Zusammenhang auch abbildet.

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.