chasecrawford / ratings
A PHP class which implements the Elo rating system & Rating Percentage index
Installs: 13
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 1
Open Issues: 0
pkg:composer/chasecrawford/ratings
Requires
- php: >=8.0
This package is not auto-updated.
Last update: 2023-04-19 19:47:09 UTC
README
A PHP class which implements the Elo rating system & Rating Percentage index.
Install
composer require chasecrawford/ratings
Using Elo
Calculate a new elo rating for a competitor after a result
use ChaseCrawford\EloRating\Elo; $newEloRating = Elo::calc( 1000, // (float) competitor elo rating 1000, // (float) opponent's elo rating 71, // (int) competitor score 70, // (int) opponent score 0 // (int) number of matches competitor played previously (optional) )
Find the elo ratings for all competitors from a group of results
$results = [...]; $elo = new Elo(); foreach($results as $result) { $elo->addResult( $result['competitorOneName'], // (string) unique name for competitor 1 $result['competitorTwoName'], // (string) unique name for competitor 2 $result['competitorOneScore'], // (int) score for competitor 1 $result['competitorTwoScore'] // (int) score for competitor 2 ) } print_r($elo->getCompetitors())
Using RPI
use ChaseCrawford\RatingPercentageIndex\RPI; $results = [...]; $rpi = new RPI(); foreach($results as $result) { $rpi->addResult( $result['competitorOneName'], // (string) unique name for competitor 1 $result['competitorTwoName'], // (string) unique name for competitor 2 $result['competitorOneScore'], // (int) score for competitor 1 $result['competitorTwoScore'], // (int) score for competitor 2 ) } print_r($rpi->getCompetitors())