Das Array mit dem größten "Gewicht" finden

  • Moin,
    ich hoffe es wird nicht zu kompliziert.
    Was will: ein Multidimensionales durchlaufen, und dabei das Unter-Array mit dem größten "Gewicht" finden.


    Was für ein Gewicht?


    Per mitgegebenen Keys soll noch festgelegt werden können, welche Keys geprüft werden.
    Die Reihenfolge der mitgegebenen Keys soll außerdem das "Gewicht" dieser Keys festlegen.


    Zwischenfrage:
    kennt jemand einen Algo / Funktion, die genau das o.ä. macht?


    Was ich momentan hab und funktioniert:


    Bsp-Ausgabe:


    Ergebnis: ok.
    key3 gewählt, da alle Felder 1 sind --was mehr als bei allen anderen ist.


    Bsü-Ausgabe 2:


    Ergebnis: ok.
    key2 gewählt, da:
    keys angegeben in Reihenfolge: c, b, a (c hat das größte Gewicht, dann b, dann a) -- also wird auch erst c, dann b, dann a gecheckt
    Bei allen ist c = 1, also kommen erstmal alle in Frage.
    b ist aber nur bei key2 auf 1 gesetzt.
    Auch wenn a bei key3 größer ist, "gewinnt" hier key2, da b mehr Gewicht hat als a.
    (hoffe man versteht mich :) )



    Frage:
    Was mach ich bei Values die > 1 sind. Also zB 0-10?
    Ist das folgende Ergebnis "gefühlt" in Ordnung, oder eher nicht?


    Test script hier (refresh für random values -- klar) Test Script

  • Erinnert mich jetzt spontan an Medaillien bei einer Weltmeisterschaft , deren Werte auf einmal geändert werden :D


    Ich muss nochmal kurz nachfragen ob ich das richtig verstanden habe:



    Zweitens würde es mich interessieren ob es eine beliebige oder eine statische Anzahl an Keys gibt, bzw ob es beispielsweise nur die Buchstaben von a-z geben soll oder auch Kreationen wie 'Geld' , 'kg' etc. gültig sind. Zudem noch eine Frage: Haben alle verglichenen Arrays immer exakt die gleichen Keys oder kann es vorkommen das ein Array die Keys a,b besitzt und das Vergleichsarray nur a besitzt?


    Zitat

    Frage:
    Was mach ich bei Values die > 1 sind. Also zB 0-10?
    Ist das folgende Ergebnis "gefühlt" in Ordnung, oder eher nicht?


    Fühlt sich meiner Meinung nach richtig an :)

  • Ja, hast Du richtig verstanden.
    Anzahl der Keys ist beliebig. Die Keys (Typ und Form) sind auch beliebig.
    Wenn ein Array einen angegebenen Key nicht hat, dann würde das Script momentan noch in einen Fehler rennen.
    Aber solange die angegebenen Keys existieren sollte alles laufen:
    Source:



    Zitat

    Fühlt sich meiner Meinung nach richtig an


    Gut, dann sehe ich es mal als (fast) fertig an =)
    Nur noch Das mit den evtl fehlenden Key (Zwecks undefined index ...).

  • Habe das ganze auch nochmal selber umgesetzt-> möchte euch die Klasse dafür nicht vorenthalten:




    Beispiel:



    Kommentare folgen dann noch später, habe gerade keine Zeit mehr dazu :)