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 !
2. Ergebnis-Liste:
(Spieler_Name kann mehrfach vorkommen)
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:
... 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.
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
);
(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
);
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
}
Tut mir leid für den Roman.
Kommentar