Chris: Wie Array mit uasort sortieren?

Beitrag lesen

Hallo Du Einer,

entscheide Dich, ob Du konforme Datensätze verwalten willst, oder ob es sich tatsächlich um Baumstrukturen handeln muss.

$_datensatz[1]['name'] = 'Müller';
  $_datensatz[1]['herkunft'] = 'Sportverein';
  $_datensatz[1]['vormame'] = 'Alexandra';

das wäre die meistens verwendete Struktur. Hier könnte der Satz [2] ganz andere Elemente und auch verschieden viele enthalten, als der Satz [1]. Dann wäre es aber keine tabellarische Struktur, abgebildet auf das "array", sondern eine echte Baumstruktur.

$_datensatz['name'][1] = 'Müller';
  $_datensatz['herkunft'][1] = 'Sportverein';
  $_datensatz['vormame'][1] = 'Alexandra';

$_datensatz['name'][2] = 'Meier';
  $_datensatz['herkunft'][2] = 'Firma';
  $_datensatz['vormame'][2] = 'Paul';

Das wäre nun eine tabellarische Struktur, abgebildet auf das "array".
Die kann man Spalte für Spalte sortieren, ohne dass die Zusammenhänge zwischen den Feldern der Datensätze verloren gehen, da die Keys beim Sortieren beibehalten werden.

ein   natsort($_datensatz['name']);
http://de2.php.net/manual/de/function.natsort.php

würde die Spalte name also sortieren. Man kann dann die Datensätze in der Sortierung von name ausgeben lassen:

foreach($_datensatz['name'] as $key => $val)
  {
    echo "<p>Nr: $key<p>\n";

foreach($_datensatz as $colno => $fieldname)
    {
      echo "<p>$fieldname: $_datensatz[$fieldname][$key]<p>\n";
    }

echo "<hr>\n";
  }

Wenn man statt name eienn anderen 'Spaltennamen' nimmt, geht es auch.

*Hoffe ich jedenfalls* habs nicht extra nochmal ausprobiert.

LG
Chris