array durchgehen und dabei neu berechnen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • array durchgehen und dabei neu berechnen

    Hallo liebe PHP-Priester

    ich hoffe ich kann mein Problem richtig beschreiben. Ich möchte eine Rang-(Elo-)Liste aus einem Turnier-Ergebnis erstellen.

    Als Grundlage habe ich 2 Array,s:
    1. Rangpunkten-Liste = Startpunkte pro Spieler:
    Name ist immer Unique !
    PHP-Code:
    $elo_liste = array(
    array (
    'Spieler_1',1500),
    array (
    'Spieler_2',2000),
    array (
    'Spieler_3',1000),
    array (
    'Spieler_4',1000),
    array (
    'Spieler_5',1000),
    # u.s.w
    ); 
    2. Ergebnis-Liste:
    (Spieler_Name kann mehrfach vorkommen)
    PHP-Code:
    $spiel_result = array(
    array (
    'Spieler_1','Spieler_2',4,3),
    array (
    'Spieler_2','Spieler_3',1,3),
    # u.s.w
    ); 
    Auf Gundlage von dieser Klasse möchte ich nun die Elo-Liste neu erstellen.

    Da ja im Array $spiel_result Namen und Ergebnisse mehrfach vorkommen, müsste für jedes einzelne Ergebnis/Paarung die neue Rang-/Elo-Zahl brechnet werden, damit am Ende für jeden Namen seine End-Zahl berechnet wurde.

    Meine Versuche das nur per Foreach-Schleife zu machen war ohne Erfolg.
    Da dachte ich mir, man bräuchte zusätzlich noch eine FOR-Schleife ?

    Mein bisheriger Ansatz:
    PHP-Code:
    $array_result = array();
    foreach (
    $spiel_result as $items){
    list (
    $erg_name_1,$erg_name_2,$erg_1,$erg_2,) = $items;
    foreach (
    $elo_liste as $item){
    list (
    $elo_name,$elo_alt) = $item;

    if (
    $erg_name_1 === $elo_name && $erg_1 $erg_2){

    $elo_gegner $array_result[$erg_name_2][$elo_alt];
    $array_result[$erg_name_1] = array(
    (
    $erg_name_2),
    (
    $elo_gegner),
    (
    $erg_name_1." - ".$elo_alt),

    );

    }


      }
    // Und nun führe die Funktion/Klasse aus

    ... Ist auch nur Blödsinn. Ich dachte erst, ich führe Ergebnisse und alte Rangzahl zusammen und berechne damit weiter.

    Tut mir leid für den Roman.

  • #2
    Ach, ich hatte vergessen zu erwähnen, das die Klasse für die Berechnung, folgende Parameter benöigt:
    PHP-Code:
    $game $elo -> setGameRang_alt_SpielerARang_alt_SpielerB$faktor_spieler_A15 ); 
    // 0 = Spieler A 
    $newEloA[$spieler_A] = $elo -> getEloPlayers); 
    // 1 = Spieler B 
    $newEloB[$spieler_B] = $elo -> getEloPlayers); 
    Den: $faktor_spieler_A (1 für Sieg oder 0 für Verloren) fange ich per if-abfrage vorher ab.

    Kommentar


    • #3
      Schade das Niemand eine Idee/Vorschlag hat.

      Kommentar


      • #4
        Naja....
        Du zeigst zwar viel unbrauchbaren Code, vergisst aber zu sagen was da berechnet werden soll. Klar, ELOs, aber wie?

        Für mich klingt das alles Zusammenhang los und verworren.
        Wir werden alle sterben

        Kommentar

        Lädt...
        X