moi: Sortieren und Zuweisung

Beitrag lesen

Mit diesem Code wollte ich eigentlich alle Punkte die ich vorher so eingegeben habe
<input type="text" name="userid['.$fetch->userid.']" value="">
nach dem value Wert sortieren und dann für jeden den Rang bestimmen. Soweit wäre es nicht schwer gewesen. Aber schließlich sollen hier Leute mit der gleichen Anzahl an Punkten den gleichen Rang zugewiesen bekommen, und der Rang des nächsten eben so angepasst werden.
Bei drei Leuten funktioniert der Code, also wenn es zwei mal rang 1 gibt, bekommt der dritte Rang drei. Aber alle nachfolgenden bekommen auch den dritten.
Sieht jemand den Fehler?

if($_POST['result']=='Submit')  
{  
$p = 15;  
$r = 1;  
$rang = array();  
$rang[userid][rank];  
arsort($_POST['userid']);  
foreach($_POST['userid'] as $key => $punkte)  
{  
 if($punkte== $p)  
 {  
  $rang[userid] = $key;  
  $rang[rank] = $r;  
 } else {  
 // Ausgabe aller Werte aus dem Array  
 while (list($rank) = each($rang)) {  
 $r++;  
 }  
 while($punkte!= $p) $p--;  
  $rang[userid] = $key;  
  $rang[rank] = $r;  
 }  
 echo ''.var_dump($rang).'<br>';  
}