moi: Sortieren und Zuweisung

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>';  
}
  1. $rang[userid][rank];

    userid und rank stehen (im gesamten Source) nicht in Anführungszeichen. Sind es etwa Konstanten oder Makros?

    Gruß, LX

    --
    X-Self-Code: sh:( fo:) ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: Unusual
    X-Please-Search-Archive-First: Absolutely Yes
    1. Eine gute Frage. Eigentlich sind sie ja sehr variable. Ich habe mal alle in Anführungszeichen gesetzt. Geholfen hat es nichts.

      Ich denke, die While-Anweisung muss etwas geändert werden, komme aber nicht drauf wie.
      Wenn ich

       while (list($rank) = each($rang)) {  
       $r++;  
       echo $r;  
       }
      

      mache, wird einmal 2 und 3 ausgegeben, aber verweilt dann bei dieser Zahl:

        
      array(2) { ["userid"]=>  int(25) ["rank"]=>  int(1) }  
      array(2) { ["userid"]=> int(24) ["rank"]=> int(1) }  
      23array(2) { ["userid"]=> int(20) ["rank"]=> int(3) }  
      array(2) { ["userid"]=> int(22) ["rank"]=> int(3) }  
      array(2) { ["userid"]=> int(23) ["rank"]=> int(3) }  
      array(2) { ["userid"]=> int(28) ["rank"]=> int(3) }