Array_multisort() in PHP Kostet Nerven

Ich habe den halben Abend versucht, herauszubekommen, was sich der/die Autor(in) Implementierung von array_multisort() in PHP gedacht haben mag. Und bin zu dem Schluss gekommen, dass ich (wenn ich mit meiner Thesis fertig bin) wahlweise

a) eine neue Funktion einreiche oder
b) die alte Funktion mit neuer Syntax und Semantik vorschlage

Mein (nicht ganz unüblicher Fall): es liegt ein zweidimensionales Array vor (für Nicht-Informatiker: sieht aus wie eine Tabelle).

<th>
  surname
</th>

<th>
  firstname
</th>
<td>
  Müller
</td>

<td>
  Heinz
</td>
<td>
  Apfelhuber
</td>

<td>
  Eva
</td>
<td>
  Zuckerhut
</td>

<td>
  Paul
</td>

Jetzt scheint es mir nicht so abwegig, diese Liste nach “surname” sortieren zu wollen, so dass ich anschließend die Reihenfolge “Apfelhuber, Müller, Zuckerhut” bekomme.

Bei array_multisort() muss ich aber jetzt erst mal ein eindimensionales Array bauen, das alle IDs enthält, ein weiteres für alle Nachnamen und noch eins für Vornamen und die dann mit array_multisort() sortieren. Und anschließend natürlich alles wieder zusammenwerfen, damit ich wieder so eine Tabelle wie hier oben erhalte, nur diesmal sortiert.

Das erscheint mir zum einen nicht wirklich performant und zum anderen deutlich zu umständlich. Und stark verbesserungswürdig.

Bevor jetzt Buh-Rufe von den Zuschauerrängen kommen: nein, ich kann [in diesem speziellen Fall] meine Ergebnisse, die (oh Wunder) aus einer SQL-Datenbank kommen, nicht schon gleich mit “SELECT … ORDER BY …” sortieren.

comments

comments powered by Disqus