Michael Kleinhans: mehrdimensionale Array? Datensätze? Sortieren?

Hi Leude,

ich hab mich immer um's sortieren von Arrays herumgedrückt und das lieber durch SQL-Statements umgangen, wie komplex sie auch waren.

Aber jetzt hab ich einen Fall, in dem ich es nicht mehr umgehen kann und raff es einfach nicht. Wenn ich Datensätze habe wie z.B. Vorname, Name, Alter - in was für ein Array packe ich die? Wie kann ich dieses Array dann sortieren?
Ich stöbere schon seit Stunden aber ich kapiere einfach nicht, was mir Egon Schmidt und Konsorten erzählen wollen ...

Bei Turbo Pascal (vor 15 Jahren *grins*) ging das etwa so:
-- -- - - -- -- - - -- -- - - -- -- - -
type
  person = record
    (Vorname:string, Name:string, Alter:int);
var
  a: array[0..100] of person;
-- -- - - -- -- - - -- -- - - -- -- - -
Diese Vorstellung geistert noch durch meinen Kopf und ich krieg sie einfach nicht mit dem zusammen, was geschrieben steht.

Hilfe! Laßt mich nicht dumm sterben!

  1. Ach so, vielleicht sollte ich noch eine Anmerkung machen:
    ich krieg das schon grundsätzlich "irgendwie" hin, ich würde jetzt ein assoziatives Array von Arrays machen z.B.
      Array (
    [Vorname] => Array ( [0] => Hans, [1] => Tom, [2] => Uwe )
    [Name]    => Array ( [0] => A   , [1] => B  , [2] => C   )
    [Alter]   => Array ( [0] => 15  , [1] => 36 , [2] => 21  )    )
    ... und ich krieg das auch mit einer selbstgemachten Funktion sortiert - aber wie geht es mit einer der vordefinierten?
    asort lässt sich nicht auf mehrdimensionale Arrays anwenden, array_multisort wirf die Indexe durcheinander - weiss einer Abhilfe oder ein pfiffiges Konstrukt?

    Hi Leude,

    ich hab mich immer um's sortieren von Arrays herumgedrückt und das lieber durch SQL-Statements umgangen, wie komplex sie auch waren.

    Aber jetzt hab ich einen Fall, in dem ich es nicht mehr umgehen kann und raff es einfach nicht. Wenn ich Datensätze habe wie z.B. Vorname, Name, Alter - in was für ein Array packe ich die? Wie kann ich dieses Array dann sortieren?
    Ich stöbere schon seit Stunden aber ich kapiere einfach nicht, was mir Egon Schmidt und Konsorten erzählen wollen ...

    Bei Turbo Pascal (vor 15 Jahren *grins*) ging das etwa so:


    type
      person = record
        (Vorname:string, Name:string, Alter:int);
    var
      a: array[0..100] of person;


    Diese Vorstellung geistert noch durch meinen Kopf und ich krieg sie einfach nicht mit dem zusammen, was geschrieben steht.

    Hilfe! Laßt mich nicht dumm sterben!

  2. So, noch eine Ergänzung (klasse, wenn man sich eine ganze Nacht lang selbst schreibt *g*)

    Wie kriege ich es denn hin, dass ich nach mehreren Feldern sortieren kann? Also z.B. erst nach Nachname, dann nach Vorname und zuletzt nach Alter? Auf Teile eines Arrays lassen sich die Funktionen ´ja nicht anwenden, oder?

    So langsam frage ich mich, ob ich lieber eine temporäre Tabelle auf dem SQL-Server öffne - aber es bildet ja ungemein, sich mal wieder mit sowas auseinander zusetzen *gähn*

    Hi Leude,

    ich hab mich immer um's sortieren von Arrays herumgedrückt und das lieber durch SQL-Statements umgangen, wie komplex sie auch waren.

    Aber jetzt hab ich einen Fall, in dem ich es nicht mehr umgehen kann und raff es einfach nicht. Wenn ich Datensätze habe wie z.B. Vorname, Name, Alter - in was für ein Array packe ich die? Wie kann ich dieses Array dann sortieren?
    Ich stöbere schon seit Stunden aber ich kapiere einfach nicht, was mir Egon Schmidt und Konsorten erzählen wollen ...

    Bei Turbo Pascal (vor 15 Jahren *grins*) ging das etwa so:


    type
      person = record
        (Vorname:string, Name:string, Alter:int);
    var
      a: array[0..100] of person;


    Diese Vorstellung geistert noch durch meinen Kopf und ich krieg sie einfach nicht mit dem zusammen, was geschrieben steht.

    Hilfe! Laßt mich nicht dumm sterben!

    1. Hi Michael

      PHP4 kann's

      http://www.php4.org/manual/en/function.array-multisort.php

      Viele Grüße

      Lulu