Navigationsleiste in PHP

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

  • Navigationsleiste in PHP

    Hallo ihr lieben,

    ich bin gerade Datei ein kleines PHP Skript zu erstellen.
    Daüf will ich eine Text Datei auslesen, die bestimmte Länder beinhaltet. Das er mir die Datei sortiert ausgibt habe ich hinbekommen, jetzt will ich aber das er zuerst Deutschland, Frankreich und England schreibt und den rest der Datei sortiert.

    Halt alles ausser diesen 3 Ländern.

    Kann mir da einer helfen?? dontknow:

    Gruß
    Janet:

  • #2
    - Datei in Array lesen
    - Array sortieren
    ~~ bis hierher bist du schon ~~
    - bestimmte Elemente ($laender_array['de'] usw.) ausgeben
    - ausgegebene Elemente löschen (unset($laender_array['de']) usw.)
    - restlichen Array z.B. mit foreach-Schleife ausgeben (das hast du wohl auch schon)

    Kommentar


    • #3
      danke für die schnelle antwort,
      ich versuche das mal eben und melde mich wieder.

      Hoffe im positiven Sinn.

      Kommentar


      • #4
        Ich habe das jetzt mal ausprobiert, aber irgendwie habe ich was falsch. Ganz sicher sogar .

        So sieht mein Code aus

        PHP-Code:

                      $datei
        "laender.txt";
            
                      
        $array file($datei);
                      
        $array['Deutschland''England''Frankreich'];
                      echo 
        $array;
                      
                      unset (
        $array[DeutschlandEnglandFrankreich]);
                      
        sort ($arraySORT_STRING);

                      for (
        $x=0$x<count($array); $x++){
                          echo 
        $array[$x];
                          echo 
        "<br>";
                      } 
        Hoffe du oder jemand anders findet den Fehler!
        Danke im Vorraus

        Kommentar


        • #5
          bei "unset " habe ich die Hochkammas gesetzt nur im Beitrag vergessen.

          Kommentar


          • #6
            Oweia, dir fehlen essentielle Grundlagen. Ich bin leider grad auf dem Sprung, deswegen hau ich dir einfach mal etwas Code hin. Aber eigentlich solltest du dich ausführlich auf http://php.net/manual belesen!
            PHP-Code:
            // ungetestet, ohne Gewähr!

            $datei"laender.txt";

            $countries file($datei);
            $specials = array('Deutschland''England''Frankreich');

            foreach (
            $specials as $special_index => $special_country) {
                if ( 
            $index array_search($special_country$countries) )
                    unset(
            $countries[$index]);
                else
                    unset(
            $specials[$special_index]);
            }
                          
            sort($countriesSORT_STRING);

            $countries array_merge($specials$countries);

            echo 
            '<pre>'print_r($countries); echo '</pre>'

            Kommentar


            • #7
              vielen dank.
              kann sein das mir einiges an Grundlagen fehlt, bin noch so gesagt anfänger.

              Aber vielen lieben dank.

              Kommentar


              • #8
                Kann mir nochmal jemand helfen?

                Ich habe das Skript jetzt mal ausprobiert, aber es klappt bei mir nicht.
                Er zeigt sie zwar an, aber nicht die ersten drei die ich nicht sortiert haben wollte.

                Danke im Vorraus

                Kommentar


                • #9
                  Probieren wir es mal etwas einfacher:
                  PHP-Code:
                  // ungetestet, ohne Gewähr! (immernoch)

                  $datei"laender.txt";

                  $countries file($datei);
                  $specials = array('Deutschland''England''Frankreich');

                  foreach (
                  $specials as $special_index => $special_country) {
                      if ( 
                  $index array_search($special_country$countries) )
                          unset(
                  $countries[$index]); // weil es in den Specials ist
                      
                  else
                          unset(
                  $specials[$special_index]); // weil wir nix dazuerfinden wollen
                  }
                                
                  sort($countriesSORT_STRING);

                  // $countries = array_merge($specials, $countries); lassen wir das mal weg

                  echo '<pre>'print_r($specials); print_r($countries); echo '</pre>'
                  Wie siehts jetzt aus?

                  Kommentar


                  • #10
                    ich habe das jetzt wieder so übernommen.
                    Es klappt in so weit, dass er mir die Länder anzeigt, aber alles sortiert.
                    Deutschland, etc. schreibt er mir nicht an den Anfang.

                    Die drei Länder stehen auch in der Textdatei!

                    fällt dir noch was ein?

                    Kommentar


                    • #11
                      Zeig mal die Ausgabe. Insbesondere die des ersten Arrays ($specials) und vom zweiten (fall die sehr lang ist) kürzt du bitte unwichtige Teile weg.

                      Kommentar


                      • #12
                        Array
                        (
                        )
                        Array
                        (
                        [0] => Belgien

                        [1] => Daenemark

                        [2] => Deutschland

                        [3] => England

                        [4] => Frankreich

                        [5] => Holland

                        ....
                        ....
                        )

                        So sieht es aus, wenn ich es mir ausgeben lasse.
                        Die Index Angabe, brauche ich eigentlich nicht. Es soll eine Navigationsleiste werden, bei der, wenn ich auf Deutschland klicke weitere Namen erscheinen.

                        Kommentar


                        • #13
                          Gnaa, die Linefeeds!?! Ändere mal wie folgt:
                          PHP-Code:
                          $specials = array("Deutschland\n""England\n""Frankreich\n"); 
                          Der Rest wie gehabt.

                          Kommentar


                          • #14
                            erstmal vielleicht eine frage, wofür sollte diese "n" sein?
                            Will ja auch verstehen, was ich da machen =).

                            Habe es jetzt so geändert und es sieht fast aus wei vorher!
                            Leider!

                            Jetzt ist eine Array mehr. So:

                            Array
                            (
                            )
                            Array
                            (
                            [0] => Belgien

                            [1] => Daenemark
                            )

                            Kommentar


                            • #15
                              Die \n sind Zeilenumbrüche. Du liest die Datei mit file(), dabei wird jede Zeile inkl. des Umbruchs am Ende ein Arrayelement. Deswegen schlägt der Vergleich fehl.

                              Letzter Versuch
                              PHP-Code:
                              <pre>
                              <?php
                              $datei
                              "laender.txt";
                              $countries file($datei);
                              for (
                              $i 0$i count($countries); $i++)
                                  
                              $countries[$i] = rtrim($countries[$i]); // Zeilenumbrüche weg

                              $specials = array('Deutschland''England''Frankreich');

                              foreach (
                              $specials as $special_index => $special_country) {
                                  if ( (
                              $index array_search($special_country$countries)) !== FALSE )
                                      unset(
                              $countries[$index]); // weil es in den Specials ist
                                  
                              else
                                      unset(
                              $specials[$special_index]); // weil wir nix dazuerfinden wollen
                              }

                              sort($countries);
                              $countries array_merge($specials$countries);
                              print_r($countries);
                              ?>
                              </pre>
                              Falls es dich nicht stört, dass Länder gar nicht in der Datei stehen, aber weil sie in $specials sind, trotzdem in der Ausgabe erscheinen, dann ist das hier das richtige:
                              PHP-Code:
                              <pre>
                              <?php
                              $datei
                              "laender.txt";
                              $countries file($datei);
                              for (
                              $i 0$i count($countries); $i++)
                                  
                              $countries[$i] = rtrim($countries[$i]); // Zeilenumbrüche weg

                              $specials = array('Deutschland''England''Frankreich');

                              $countries array_diff($countries$specials); // hier wird u.U. dazuerfunden

                              sort($countries);
                              $countries array_merge($specials$countries);
                              print_r($countries);
                              ?>
                              </pre>

                              Kommentar

                              Lädt...
                              X