TS: Assoziatives, mehrdimensionales Array sortieren

Beitrag lesen

Hello,

Die Bewertung kommt von mir, weil es mit Spaltenarrays technische Schwierigkeiten gibt, das habe ich an anderer Stelle auch mal erklärt.

Ich find's immer gut, wenn man weiß, was bemängelt wurde ;-)

Alle einfachen PHP-eigenen Aggregats- und Sortierfunktionen werden durch "Zeilenarrays" unbenutzbar.

Um auf das Beispiel "Preis + Versandkosten" zurückzukommen, benötigt man dafür am einfachsten eine eigene Spalte. Die kann man aber leicht erzeugen. Und dann kann man die wieder mit asort() sortieren.

$_data['gesamtpreis'] = array();

foreach ($_data['preis'] as $key -> $preis)
{   
    $_data['gesamtpreis'][$key] = $preis + $_data['versand'][$key];
}

asort($_data['gesamtpreis'], SORT_NUMERIC); 

Man kann nun auch den maximalen Preis, den niedrigsten Preis, die Summe einer Spalte, den mittleren Preis (=summe/anzahl), usw. ganz leicht mit den Standard-Arrayfunktionen von PHP bestimmen.

Das schöne an der "Spaltenarray"-Variante ist außerdem, dass die Sortierungen nach einer Spalte erhalten bleiben solange das Array lebt. Man muss dann nur noch die passende Spalte auswählen und mit foreach() nach ihren Keys get_record() aufrufen.

Bei der Anwendung muss man eben immer nur darauf achten, dass man nicht aus Versehen mal sort() benutzt. Dann sind die Datensätze kaputt.

Liebe Grüße
Tom S.

--
Es gibt nichts Gutes, außer man tut es!
Das Leben selbst ist der Sinn.