All pastes #166112 Raw Edit

Someone

public php v1 · immutable
·published 2006-09-10 15:50 UTC
rendered paste body
<?phpfunction fieldsortfactory($fieldname, $reverse=false) {	if($reverse){		return create_function('$l, $r', 'return $r["'.$fieldname.'"] - $l["'.$fieldname.'"];');	}	return create_function('$l, $r', 'return $l["'.$fieldname.'"] - $r["'.$fieldname.'"];');}$lines = file('chatstats.dat');//	unset($lines[0], $lines[1]);$stats = array();foreach($lines as $line) {	$rawstats = explode(' ', $line);	if(count($rawstats) < 15)		continue;	$linestats = array(		'username' => $rawstats[0],		'tt_words' => $rawstats[4],		'as_words' => $rawstats[6],		'bans'     => $rawstats[9],		'banned'   => $rawstats[11],		'kicks'    => $rawstats[8],		'kicked'   => $rawstats[10]		);	$stats[$linestats['username']] = $linestats;}$toptalkers=$allstars=$stats;uasort($toptalkers, fieldsortfactory('tt_words', true));uasort($allstars, fieldsortfactory('as_words', true));$tt_ranks = array_flip(array_keys($toptalkers));$as_ranks = array_flip(array_keys($allstars));foreach($stats as $username => $userstats){	$stats[$username]['tt_rank'] = $tt_ranks[$username]+1;	$stats[$username]['as_rank'] = $as_ranks[$username]+1;}$userstats = $stats[$username];$ttpos 	= $userstats['tt_rank'];$ttwords= $userstats['tt_words'];$aspos 	= $userstats['as_rank'];$aswords= $userstats['as_words'];$bans 	= $userstats['bans'];$banned = $userstats['banned'];$kicks 	= $userstats['kicks'];$kicked = $userstats['kicked'];//to grab top10 toptalkersforeach($tt_ranks as $talker => $rank){    if( rank > 10 )        break; //we've already got the top 10 -- bail outof the loop     //do stuff here.     //to get the user's other stats, use $stats[$talker]    //f.ex.:    echo $rank . '. ' . $talker . ' - ' . $stats[$talker]['tt_words'] . ' words';}?>