Michi: ABC Leiste

Hallo zusammen

Gerne möchte ich eigentlich so eine ABC Leiste programmieren. Wenn man auf den Buchstaben C klickt, erscheinen alle Einträge die mit einem C beginnen.

Folgendes habe ich schon mal hingekriegt...ja ich weiss, nicht sehr viel.

  
$myabc = array ("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");  
$strich = implode(" | ", $myabc);  
echo $strich;  

Wie kriege ich da nun einfach die verschiedenen Links rein.
Bin dankbar für jeden Tipp.

Danke und Gruss
Michi

  1. Hi Michi!

    Wieso nutzt du nicht foreach und baust die Ausgabe gleich zusammen?

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    1. Wieso nutzt du nicht foreach und baust die Ausgabe gleich zusammen?

      Gute Frage...vielen vielen Dank, ein erster kleiner Liste verlieft schon mal super. Jetzt muss ich noch mit implode ein | dazwischenfügen und dann wars das ja schon fast.

      Nochmals Danke für deinen Tipp.
      Gruss
      Michi

      1. Hi Michi!

        Um Gottes Willen...

        Wozu? :)

        <?php  
        $x = 0;  
        foreach($array as $value) {  
        echo "<a href="\link\">$value</a>  
        if($x < count($array) - 1)  
            echo "|";  
        $x++;  
        }  
        ?>
        

        MfG H☼psel

        --
        "It's amazing I won. I was running against peace, prosperity, and incumbency."
        George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
        Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
        1. Hallo,

          <?php

          $x = 0;
          foreach($array as $value) {
          echo "<a href="\link">$value</a>
          if($x < count($array) - 1)
              echo "|";
          $x++;
          }
          ?>

            
          Nicht schlecht... auf den ersten Blick habe ich mich gefragt, was du in einer foreach-Schleife auch noch mit $x als Zählvariable willst. Beim genaueren Hinsehen war's dann klar.  
          Allerdings solltest du die Reihenfolge der '\' und '"' nochmal kritisch kontrollieren. Sieht irgendwie merkwürdig aus, oder nicht? ;-)  
            
          Schönen Abend noch,  
            
           Martin  
          
          -- 
          Ungeschehene Ereignisse können einen katastrophalen Mangel an Folgen nach sich ziehen.  
            (Unbekannter Politiker)  
            
          
          
          1. Hi Martin!

            Nicht schlecht...

            Danke.

            auf den ersten Blick habe ich mich gefragt, was du in einer foreach-Schleife auch noch mit $x als Zählvariable willst. Beim genaueren Hinsehen war's dann klar.

            Und das habe ich mir nur mal so aus dem Ärmel geschüttelt. Der reine Wahnsinn, was? ;-)

            Allerdings solltest du die Reihenfolge der '' und '"' nochmal kritisch kontrollieren. Sieht irgendwie merkwürdig aus, oder nicht? ;-)

            Ja. :)
            Ich bin zum Glück nicht perfekt.

            MfG H☼psel

            --
            "It's amazing I won. I was running against peace, prosperity, and incumbency."
            George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
            Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
            1. Hi Martin!

              Nicht schlecht...

              Danke.

              auf den ersten Blick habe ich mich gefragt, was du in einer foreach-Schleife auch noch mit $x als Zählvariable willst. Beim genaueren Hinsehen war's dann klar.

              Und das habe ich mir nur mal so aus dem Ärmel geschüttelt. Der reine Wahnsinn, was? ;-)

              Allerdings solltest du die Reihenfolge der '' und '"' nochmal kritisch kontrollieren. Sieht irgendwie merkwürdig aus, oder nicht? ;-)

              Ja. :)
              Ich bin zum Glück nicht perfekt.

              Der Fachmann wundert sich und der Laie staunt!
              Vielen Dank nochmals!

              Gruss
              Laie :)

        2. Hi Michi!

          Um Gottes Willen...

          Wozu? :)

          Tja...das weiss nur der über mir ;-)

          <?php

          $x = 0;
          foreach($array as $value) {
          echo "<a href="\link">$value</a>
          if($x < count($array) - 1)
              echo "|";
          $x++;
          }
          ?>

          Habe noch einen einfacheren Weg gefunden...unglaublich :)  
          ~~~php
            
            foreach ($arr as $value)  
             {  
              echo "<a href='glossar.php?funcabc=1&idabc=$value'>$value</a> | ";  
             }  
          
          

          Gruss
          Michi

          1. Hi Michi!

            Habe noch einen einfacheren Weg gefunden...unglaublich :)

            Wenn er funktionieren würde, könnte ich dir zustimmen. :)

            Allerdings nimmst du somit in Kauf, dass am Ende noch ein "|" eingefügt wird.

            MfG H☼psel

            --
            "It's amazing I won. I was running against peace, prosperity, and incumbency."
            George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
            Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
            1. Hi Hospel!

              Habe noch einen einfacheren Weg gefunden...unglaublich :)

              Habs natürlich auch gemerkt...nur leider habe ich deine Schlaufe noch nicht zum laufen gebracht...irgendwie scheint bei mir heute der Wurm drin zu sein...versuche es nochmals.

              Gruss
              Michi

              1. Hi Michi!

                Habs natürlich auch gemerkt...nur leider habe ich deine Schlaufe noch nicht zum laufen gebracht...irgendwie scheint bei mir heute der Wurm drin zu sein...versuche es nochmals.

                Das ist nicht dein Fehler, sonder meiner.

                Es muss heißen:

                <?php  
                $x = 0;  
                foreach($array as $value) {  
                echo "<a href=\"link\">$value</a>  
                if($x < count($array) - 1)  
                    echo "|";  
                $x++;  
                }  
                ?>
                

                MfG H☼psel

                --
                "It's amazing I won. I was running against peace, prosperity, and incumbency."
                George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
                Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
                1. Hi Hopsel!

                  Schon wieder falsch. :)

                  Natürlich so:

                  <?php  
                  $x = 0;  
                  foreach($array as $value) {  
                  echo "<a href=\"link\">$value</a>";  
                  if($x < count($array) - 1)  
                      echo "|";  
                  $x++;  
                  }  
                  ?>
                  

                  MfG H☼psel

                  --
                  "It's amazing I won. I was running against peace, prosperity, and incumbency."
                  George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
                  Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
                  1. echo $begrüßung;

                    Warum machst du es den überhaupt so kompliziert? $array ist doch ein Array mit einem wunderschönen numerischen Index, fortlaufend von 0 bis 25. Da das eben grad selbst angelegt wurde gibts daran auch keinen Zweifel. Es wird keine extra Zählvariable benötigt, weil der Wert aus dem Key gewonnen werden kann: foreach ($array as $x => $value)
                    Statt count($array) könnte man auch noch einen festen Wert nehmen. Die Anzahl der Buchstaben im Alphabet ist doch recht konstant (und das -1 spart man sich dann auch).

                    echo "$verabschiedung $name";

                    1. Hi dedlfix!

                      Statt count($array) könnte man auch noch einen festen Wert nehmen.

                      Sicher. Aber dann bräuchtest du auch keine foreach-Schleife.

                      Ich bin in der Hinsicht wesentlich abstrakter. Und das bisschen Rechenzeit macht es auch nicht aus. :)

                      MfG H☼psel

                      --
                      "It's amazing I won. I was running against peace, prosperity, and incumbency."
                      George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
                      Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
            2. Hi Hospel

              Nun hat es doch noch geklappt...hatte ein Wirrwarr mit den Variablenname.

              Endlich ;-)

              Danke und noch einen schönen Abend.

              Gruss
              Michi

  2. echo $begrüßung;

    Gerne möchte ich eigentlich so eine ABC Leiste programmieren. Wenn man auf den Buchstaben C klickt, erscheinen alle Einträge die mit einem C beginnen.

    Folgendes habe ich schon mal hingekriegt...ja ich weiss, nicht sehr viel.

    $myabc = array ("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");

    Da warst du aber fleißig. Da ich faul bin mach ich das so:
    $myabc = range('A', 'Z');

    Zum Anwenden einer Funktion auf alle Elemente des Arrays gibt es array_walk() und array_map()

    array_walk($myabc, create_function('$a', 'return '<a href="#$a>$a</a>;'));

    Und dann kommt dein

    $strich = implode(" | ", $myabc);

    echo "$verabschiedung $name";

  3. Leute, Leute. Es gibt im Deutschen keine Wörter mit Leerzeichen wie "ABC Leiste". Es heißt immer "ABC-Leiste" mit Bindestrich. Lest Ihr zu viele englische Texte?

    Gruß
    Jan

    1. Hallo Jan,

      Leute, Leute. Es gibt im Deutschen keine Wörter mit Leerzeichen wie "ABC Leiste". Es heißt immer "ABC-Leiste" mit Bindestrich.

      du hast ja so Recht. Aber derartige Unsitten sind schon so häufig, dass es mir manchmal schon gar nicht mehr auffällt.

      Lest Ihr zu viele englische Texte?

      Das wäre eine Erklärung - aber ich glaube nicht, dass es die richtige ist. Denn dieselben Leute neigen oft dazu, im _Englischen_ wiederum vieles mit Bindestrich zu schreiben, wo er nicht angebracht ist.

      Schönen Tag noch,

      Martin

      --
      Ein guter Lehrer muss seinen Schülern beibringen können,
      eine Frage so zu stellen, dass auch der Lehrer lernen muss,
      um die Frage beantworten zu können.
        (Hesiod, griech. Philosoph, um 700 v.Chr.)
    2. Hallo Jan,

      Leute, Leute. Es gibt im Deutschen keine Wörter mit Leerzeichen wie "ABC Leiste". Es heißt immer "ABC-Leiste" mit Bindestrich.

      Kennst du Wayne?

      Grüße aus Nürnberg
      To*scnr*bias