[PHP] Array sortieren

Dieses Thema im Forum "Webentwicklung" wurde erstellt von pleq, 15. Juli 2009 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 15. Juli 2009
    Array sortieren

    Hej Leute ...

    ich habe ein Array, welches wie folgt aussieht:

    Code:
    Array ( [0] => Array ( [dID] => 1 [rating] => 4.33333333333 ) [1] => Array ( [dID] => 2 [rating] => 9 ) ) 
    

    Nun muss dieses Array so sortiert werden, dass das höchste Rating an 1. Stelle steht!

    Eventuell gibt es ja auch einfacherere Methoden ... darum beschreibe ich mal gerade mein Vorhaben:

    Ich habe 2 Tabellen:

    1. downloads
    2. rating

    Nun will ich die best bewerteten Downloads anzeigen lassen. Dafür berechne ich erstmal das Voting aus den in der Tabelle rating liegenden Einträgen. Diese Einträge sind halt mit einer ID zu einem Download gekoppelt.

    Also vllt. gibt es ja auch bessere Lösungansätze ...

    danke schoneinmal!
     
  2. 15. Juli 2009
    AW: Array sortieren

    Hi,

    du könntest es elegant über nen SQL lösen,
    der beide Tabelle joint und die Mittelwerte bildet und
    dementsprechend sortiert.
    Da das aber aus Erfahrung zu performancelastig ist,
    solltest du in die Tabelle »Downloads« ein Feld mit
    z.B. dem Titel »rating« hinzufügen, dass immer den
    Durschnittswert aller Rating beinhaltet.
    Dementsprechend immer bei einer Bewertungsabgabe
    den Mittelwert berechen und die Download-table updaten.

    So musst Du nicht 2 Tabellen joinen und auch - in deinem
    Lösungsvorschlag - keine Arrays sortieren.
    Die Rating-Tabelle muss natürlich weiter bestehen, damit du
    die Benutzer blocken kannst, die bereits eine Bewertung abgegeben
    haben.

    MArc
     
  3. 15. Juli 2009
    AW: Array sortieren

    1. Formatiere deinen code ein bisschen - Ist viel übersichtlicher und du kannst auch mehr Hilfe erwarten
    Code:
    Array (
     [0] => Array ( [dID] => 1 [rating] => 4.33333333333 )
     [1] => Array ( [dID] => 2 [rating] => 9 )
    )
    2. Ja einfacher wäre ein SQL-Statement

    Code:
    SELECT d.id, r.voting
    FROM downloads AS d, rating AS r
    WHERE d.id = r.id
    ORDER BY r.voting DESC
     
  4. 15. Juli 2009
    AW: Array sortieren

    Coksnuss,

    der Vorschlag funktioniert so leider nicht, weil der gute pleq
    - soweit ich das richtig gelesen habe - eine 1-n Beziehung
    zwischen den Tabellen hat.

    MArc
     
  5. 15. Juli 2009
    AW: Array sortieren

    ich habe es nun so gelöst, dass nach jedem vote eine spalte in der download tabelle geupdatet wird, ist am einfachsten und schnellsten!

    trotzdem danke .p
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.