top 10 list erstellen..

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

  • top 10 list erstellen..

    hi,
    hab mal wieder ein frage^^.
    Wie stell ich es an, dass ich in einer datei eine bestimmte Zahl und den Zugehoerigen Benutzernamen Speicher, am besten mit "|" damit ich exploden kann, weil sich die zahl noch oefters aendert...
    naja und dann aus dieser datei eine top 10 erstellen kann, wo die Zahl und der Benutzername angezeigt werden, welche befehl muss ich dafuer verwenden?
    mit array_mulitsort bin ich noch nicht recht weite gekommen...
    1123581321

  • #2
    zum arbeiten mit textdateien findest du hier diverse threads. fopen

    mit array_mulitsort bin ich noch nicht recht weite gekommen...
    wie sieht dein ansatz aus? wo sind die probleme?

    Kommentar


    • #3
      PHP-Code:
      $lesen fopen("st/st_top10.txt""r+");
         while (!
      feof($lesen))
              {

               
      $won = array();
               
      $line fgets($lesen5000);
               
      $zerlegung explode("|"$line);
               
      array_push ($won,$zerlegung[0]);
               
      array_multisort ($won);
               echo 
      "$won";
              } 
      als ausgabe erhalte ich array, array....

      die txt datei siehst so aus:

      2|Pepe
      4|Enerkin

      was mach ich falsch??
      1123581321

      Kommentar


      • #4
        print_r statt echo. und wozu die gottverdammten anführungsstriche?

        1) was ist wenn ne zeile mal mehr als 5000 byte enthält?
        2) wenn ich es richtig verstanden habe, wird $won zwei zahlen enthalten - 4 und 2. entspricht das dem, was du brauchs?
        Zuletzt geändert von penizillin; 27.11.2004, 14:43.

        Kommentar


        • #5
          PHP-Code:
          Parse errorparse errorunexpected '\"' 
          ?... da steht nirgends ein \
          1123581321

          Kommentar


          • #6
            zu 1.: k.a. was soll da sein?
            zu 2.: um k.a. ich will nur dass die gröste zahl mit zugehorigem usernamen ganz oben angezeigt wird und so weiter nach unten hin...
            1123581321

            Kommentar


            • #7
              man sollte schon in der lage sein, die parsing-fehler selbst zu korrigieren.

              1) wenn du dir sicher bist - ok.
              2) dann musst du wohl $won auch mit anderen infos füllen, als nur mit der zahl

              Kommentar


              • #8
                PHP-Code:
                while (!feof($lesen))
                        {

                         
                $won = array();
                         
                $line fgets($lesen5000);
                         
                $zerlegung explode("|"$line);
                         
                array_push ($won,$zerlegung[1]);
                         
                array_push ($won,$zerlegung[0]);
                         
                array_multisort ($won);
                         
                print_r ($won);
                        } 
                erhalte folgendes als ausgabe:

                Array ( [0] => 2 [1] => Pepe ) Array ( [0] => 4 [1] => Enerkin ) Array ( [0] => [1] => )

                ?? kann damit nicht viel anfangen..
                Zuletzt geändert von Enerkin; 27.11.2004, 15:18.
                1123581321

                Kommentar


                • #9
                  logik wanted.

                  also

                  jedesmal wenn du eine zeile einliest, füllst du $won mit der zahl und dem namen, der drinsteht. sortierung bewirkt nichts. gibst sie aus. löschst sie beim nächsten durchgang. ist doch irgendwie falsch, oder?

                  formuliere doch mal in eigenen worten eine richtigere vorgehensweise.

                  Kommentar


                  • #10
                    wenn ich in die while schleife noch den andere schleife einbaue??
                    wenn ja, wie muss die genau definiert sein...
                    Zuletzt geändert von Enerkin; 27.11.2004, 15:31.
                    1123581321

                    Kommentar


                    • #11
                      du kannst da sogar 3 schleifen einbauen und noch eine if-verzweigung dazu. verschahtelt. aber versuch doch erstma auf mein post zu antworten.

                      Kommentar


                      • #12
                        hm deswegen hab ich ja hier am anfang gefragt, hab 0 plan wie ich grob das verwirklichen solll...
                        1123581321

                        Kommentar


                        • #13
                          ok, ich helfe dir ein wenig mit der logik:

                          1) aus der datei muss ein array werden, wo eine zeile einem array-element entspricht
                          2) jedes array-element soll ein array werden, dessen element 0 die zahl und element 1 den namen aus jeder zeile entspricht
                          3) sortiert wird nach dem 0-ten element jeder zeile
                          4) die ausgabe kann mittels einer schleife deiner wahl erfolgen

                          Kommentar


                          • #14
                            PHP-Code:
                               $row "0";
                               
                            $lesen fopen("/usr/export/www/vhosts/funnetwork/hosting/teamganja/gjav4/st/st_top10.txt""r+");
                               while (!
                            feof($lesen))
                                    {

                                     
                            $file_array file('st/st_top10.txt');
                                     
                            $mk_array = array($file_array[$row]);

                                     
                            $row++
                                    } 
                            k.a. wie es weitergehen soll?
                            dessen element 0 die zahl und element 1 den namen aus jeder zeile entspricht
                            wie mach ich das??
                            1123581321

                            Kommentar


                            • #15
                              ist nicht korrekt.

                              du kannst es vereinfachen. wenn du file() benutzst, hast du automatisch ein array, das aus einzelnen zeilen besteht.

                              als nächstes mit foreach das array durchgehen und ein neues erstellen:

                              PHP-Code:
                               $file_array file('st/st_top10.txt');
                              $anzahlzeilen count($file_array);
                              $multiarray = array();

                              for(
                              $i=0$i<$anzahlzeilen$i++)
                              {
                                  
                              $zerlegung explode("|"$file_array[$i]);
                                  
                              $multiarray[$i] = $zerlegung;

                              jetzt hast du in $multiarray[0][0] die zahl der ersten zeile und in [0][1] den namen, etc.

                              wie man mit multisort solche arrays sortiert kannst du dir hier abgucken:
                              PHP-Code:
                              echo "<pre>";

                              $a1 = array("5""fünf");
                              $a2 = array("2""zwei");
                              $a3 = array("9""neun");
                              $a4 = array("1""eins");
                              $a5 = array("3""drei");
                              $a6 = array("4""vier");

                              $b = array($a1$a2$a3$a4$a5$a6);

                              print_r($b);

                              array_multisort($b);

                              print_r($b); 
                              p.s. der code is natürlich nicht getestet worden
                              Zuletzt geändert von penizillin; 27.11.2004, 16:51.

                              Kommentar

                              Lädt...
                              X