Spezielle Array Sortierung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Spezielle Array Sortierung

    hallo

    habe da wieder mal ein problem. Ich habe in einem array (bei dem mir die länge unbekannt ist, kann ja aber mit count() herausgefunden werden) einträge in der form 25#name1 oder 14#text gespeichert. nun möchte ich das array so sortieren, dass die ausgabe iner hitliste ähnlich ist, also
    1.) name1 mit 25
    2.) text mit 14
    usw.
    das ganze soll auf eine topten liste begrenzt sein.

    wer kann mir helfen? vielen dank schon jetzt.

    gruss

    swsstrain

  • #2
    war weniger trivial als ich erst gedacht habe, aber hier der Code ==>

    Code:
    <?php
              $liste= array("34#lolo","200#dadummdidumm","9#dudu","12#hello","123#tester","23#lala","1400#juhu","23#blabla","300#hublada","299#gege","345#rere","3434#asas");
              $anzahl= count($liste);    //zaehlt die einträge
              for ($i=0;$i<$anzahl;$i++)
                {
                  /*
                        Diese Forschleife gleicht die Länge der Zahlen an, damit
                        das schön aussieht und auch funzt :)
                  */
                  $stelle=strpos($liste[$i],"#");
                  if ($stelle==1)
                    {
                        $liste[$i] = "0000".$liste[$i];
                    }
                  if ($stelle==2)
                    {
                        $liste[$i] = "000".$liste[$i];
                    }
                  if ($stelle==3)
                    {
                        $liste[$i] = "00".$liste[$i];
                    }
                  if ($stelle==4)
                    {
                        $liste[$i] = "0".$liste[$i];
                    }
                }
              rsort($liste); // sortiert die liste absteigend
              if ($i>10)     // überprüft ob es mehr als 10 einträge sind, ansonsten werden alle ausgegeben
                {
                  $i = 9;
                }
              for($n=0;$n<=$i;$n++)
                {
                  $ex = explode("#",$liste[$n]);
                  echo ($n+1).".  ".$ex[1]."hat ".$ex[0]." Punkte erreicht <br>";
                }
    ?>
    Ich denke das alles klar ist, oder ?

    Kommentar


    • #3
      hallo

      danke für den code, war genau das, was ich mir vorgestellt habe. die kleinen individualanpassungen werde ich selber noch schaffen *g*, aber der test ist schon mal gut geglückt.

      nochmals danke

      swisstrain

      Kommentar

      Lädt...
      X