note 63875 deleted from ref.array by felipe

From: Date: Sun, 30 Dec 2007 19:24:37 +0000
Subject: note 63875 deleted from ref.array by felipe
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-134508@lists.php.net to get a copy of this message
Note Submitter: g dot bell at NOSPAM dot managesys dot com dot au ---- /* function to give array of ranks. Handles ties. input $arr is zero based array to be ranked $order is the sorting order 'asc' (default) ranks smallest as 1 'desc' ranks largest as 1 output zero based array of ranks. Ties (repeated values) given equal (integer) values */ function array_rank($arr,$order='asc') { // $direction parameter foreach($arr as $being_ranked) { $t1 = $t2 = 0; if ($order == 'asc') { foreach ($arr as $checking) { if ($checking > $being_ranked) continue; if ($checking < $being_ranked) { $t1++; } else { $t2++; // equal so increment tie counter } } } elseif ($order == 'desc') { foreach ($arr as $checking) { if ($checking < $being_ranked) continue; if ($checking > $being_ranked) { $t1++; } else { $t2++; // equal so increment tie counter } } } $ranks[] = floor($t1 + ($t2 + 1) / 2); } return $ranks; }

« previous php.notes (#134508) next »