*Alex*: mehrdimensionales Array sortieren nach Value ersten Spalte

Hallo Forum

Nachdem ich nun stundenlang auf dem Schlauch rumgehüpft bin und anscheinend immer noch draufstehe, gebe ich mich hier der Lächerlichkeit preis und frage:

Wie kann ich ein mehrdimensionales Array sortieren nach dem Value ersten Spalte?

Das Array kommt nicht aus einer Datenbank.
Es ist kein assoziatives Array.
Die Seite http://de3.php.net/manual/de/function.array-multisort.php habe ich gelesen und sorry: Falls da irgendwas nützliches steht, seh ich's nicht oder kann es für meine Bedürfnisse nicht übersetzen.

Meine Traumlösung sieht ungefähr so aus:
array_na_endlich_sort($mein_Array,[Spaltennummer]);

Es kann doch unmöglich sein, dass es das nicht gibt!?

Hilfe?

Lieben Dank
   *Alex*

  1. હેલો

    Es kann doch unmöglich sein, dass es das nicht gibt!?

    Könnten wir etwas Code zu sehen bekommen? Bspw. das Array.

    બાય

    --
     .
    ..:
    1. Hallo

      Könnten wir etwas Code zu sehen bekommen? Bspw. das Array.

      Ich glaube nicht, dass sich jemand wirklich durch ellenlangen Code quälen möchte, bei dem Einträge aus einer Textdatei in Array-Felder aufgesplittet werden, auf gültige Datumseinträge geprüft und diese als timestamp hinterlegt werden.

      Das Array was letztlich produziert wird hat ungefähr folgende Form:

      $termine = array(
         array(1378591200,"08.09.2013 mit Überraschungsgast"),
         array(1378332000,"05.09.2013 13:00 - 18:00"),
         array(1379541600,"19.09.2013 12:00 - 17:00"),
         ...
      )

      Man sieht unschwer, dass die erste Spalte den timestamp enthält, nach dem sortiert werden soll.

      Letztendlich möchte ich, dass das Array folgendermaßen sortiert ist:

      $termine = array(
         array(1378332000,"05.09.2013 13:00 - 18:00"),
         array(1378591200,"08.09.2013 mit Überraschungsgast"),
         array(1379541600,"19.09.2013 12:00 - 17:00"),
         ...
      )

      Ausgegeben werden soll am Schluss die zweite Spalte, aber natürlich chronologisch sortiert.

      Hilft Dir das?

      LG
        *Alex*

      1. હેલો

        Ich glaube nicht, dass sich jemand wirklich durch ellenlangen Code quälen möchte,

        Deswegen schlägt das Forum dir ja auch vor, dein Problem auf ein Nachvollziehbares minimum zu reduzieren, und hier zu posten (idealerweise mit einem Online-Bsp.). Ein Bsp.-Array nur mit den Timestamps reicht ja erstmal, um die benötigte Funktionalität zu schreiben. Wenn du das hast, kannst du es nach Fertigstellung beliebig erweitern.

        Das Array was letztlich produziert wird hat ungefähr folgende Form:

        $termine = array(
           array(1378591200,"08.09.2013 mit Überraschungsgast"),
           array(1378332000,"05.09.2013 13:00 - 18:00"),
           array(1379541600,"19.09.2013 12:00 - 17:00"),
           ...
        )

        Die Timestamps hätten gereicht, um das Problem zu sehen. Vielleicht hättest du, wenn du dein Bsp. auf ein minimum reduziert hättest, selbst nach den richtigen Begriffen gesucht, und eine Lösung in richtung usort gefunden. Du glaubst garnicht, wie oft das hier passiert.

        બાય

        --
         .
        ..:
  2. Tach!

    Wie kann ich ein mehrdimensionales Array sortieren nach dem Value ersten Spalte?

    Also genauer gesagt ein Array of Arrays. Sortieren geht einfach mit einer der u*sort()-Funktionen und einer benutzerdefinierten Vergleichsfunktion. Diese bekommt jeweils zwei der inneren Arrays übergeben uns muss zurückmelden, ob das erste gegenüber dem zweiten kleiner, größer oder gleich ist.

    Das Array kommt nicht aus einer Datenbank.
    Es ist kein assoziatives Array.

    Das macht nichts.

    Die Seite http://de3.php.net/manual/de/function.array-multisort.php habe ich gelesen und sorry: Falls da irgendwas nützliches steht, seh ich's nicht oder kann es für meine Bedürfnisse nicht übersetzen.

    Diese Funktion will kein Array mit Datensatz-Arrays sondern ein Array mit Spalten-Arrays sortieren. Man kann sie auch für datensatzorientierte Arrays verwenden, muss da aber Umbauen. Die usort-Variante ist einfacher.

    dedlfix.

    1. Sortieren geht einfach mit einer der u*sort()-Funktionen und einer benutzerdefinierten Vergleichsfunktion. Diese bekommt jeweils zwei der inneren Arrays übergeben uns muss zurückmelden, ob das erste gegenüber dem zweiten kleiner, größer oder gleich ist.

      Danke!

      Jetzt funzt es :-)

      *Alex*