Hallo liebe PHP-Priester![Smilie](https://www.php-resource.de/forum/core/images/smilies/smile.gif)
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.
![Smilie](https://www.php-resource.de/forum/core/images/smilies/smile.gif)
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