Sebastian Salzgeber: (PHP) Gleichmäßige Sortierung

Beitrag lesen

Hallo

Kann mir jemand helfen, Daten gleichmäßig zu Sortieren?

Schaut euch bitte einmal diese Seite beim schweizer Fehrsehen an.

Wie man sieht, sind die Sendungen dort alphabetisch nach Namen sortiert in Gruppen gepackt (A-Z) und in Spalten gegliedert. Ähnlich wie bei der anderen Ansicht auf der Seite (der thematischen) sind beide Ansichten grob gesagt, platzsparend gesetzt. Will heissen: Sie haben in etwa so viele Einträge pro Spalte, dass die unteren Enden annährend ausgeglichen sind in Ihrer Höhe.

Ich frage mich wie man so eine Ausgleichung erreicht.

Nehmen wir ein Beispiel:
Ich habe 26 Buchstaben im Alphabet (in BEispiel benutzen wir nur die ersten 8 davon) und eine ganze Anzahl an Städtenamen in einer Datenbank. Ich könnte zum einen natürlich 26 GRuppen aufmachen und jeweils die Stadt mit dem Anfangsbuchstaben eintragen. Dies ergäbe dann eber ggf. soetwas:

A B C D E F G H ...
* * * * *   * *
* * * * *   * *
* * *   *   * *
  * *   *   * *
  * *   *     *
  *     *     *
  *           *
  *

Man hat eben mehr Namen mit B als z.B. mit D.

Würde man nun hingehen und sagen: Statt der 8 Gruppen (von A-H) möchte ich nun nur 4 Gruppen haben; wie bekäme ich dann eine ausgeglichene Sortieurng zustande?

Man könnte sie einfach zusammenfassen, doch wären sie dann noch nciht ausgeglichen:

A-B  C-D  E-F  G-H
 *    *    *    *
 *    *    *    *
 *    *    *    *
 *    *    *    *
 *    *    *    *
 *    *    *    *
 *    *         *
 *              *
 *              *
 *              *
 *
12    7    6   11

Bei den Insgesamt 36 Einträgen wäre da der Durschnschnitt bei 4 Kategorien ja 9 Einträge pro Gruppe (36/4). Dies könnte man ggf. durch durchlaufen und mitzählen hinbekommen (kennt man ja von einer Routine, Texte nach zu vielen Zeichen abzukürzen, aber dabei zu beachten, dies nach einem Wort zu mache anstatt mittem in einem Wort) aber dann auch noch das aufsplitten in eine dynamsiche Anzahl an Spalten... dabei bekomme ich dann doch einen Knoten im Kopf. Deswegen: Gibt es Lösungen für sowas ohne, dass ich das Rad neu erfinden muss? Wonach muss ich suchen um so eine classe/function zu finden?
Ich suchte nach div. Sort-Classes aber dort fand ich nur Sortier-Alghorithmen in PHP (was aber auhc spannend nachzuvollziehen war, was dort geschieht).

Liebe Grüße
S. Salzgeber