Buchstabenreihenfolge sortieren

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

  • Buchstabenreihenfolge sortieren

    Hallo Forum,

    ich habe vor etwas längerer Zeit mit PHP beschäftigt und kenne zu jeden normalen Problem eine Lösung, wenn auch nicht perfekt.

    Diesmal möchte ich PHP nicht für irgendeine Webapplication benutzen, sondern auf meinen Desktop PC.

    Es geht dabei um folgendes - Erstellung eines Permutations-Schlüssel wie folgt:

    A L A D I N
    1 5 2 3 4 6

    Das erste A bekommt die 1 zugewiesen, das zweite A die 2, das D die 3, das I die 4, das L die 5 und zuletzt das N die 6, also in der Reihenfolge des Alphabets

    Bei kurzen Permutations-Schlüssel, die aus z.B. 6 Buchstaben bestehen, mag das ganze noch einfach per Bleistift und Papier funktionieren. Hat aber ein Schlüssel die Länge von 21 oder gar 31 Buchstaben, dann fällt sie Sache ziemlich fehleranfällig aus und muss mindestens 3 mal überprüft werden.

    Um die Buchstaben zumindest nummerisch zu sortieren, habe ich mit

    PHP-Code:
    <?php
      
    switch ($_GET["1"])
      {
      case (
    "a"):
      echo 
    "1";
      break;
     
      case (
    "b"):
      echo 
    "2";
      break;
      
      case (
    "c"):
      echo 
    "3";
      break;
     
      case (
    "d"):
      echo 
    "4";
      break;
      
      case (
    "e"):
      echo 
    "5";
      break;
     
      case (
    "f"):
      echo 
    "6";
      break;
    ..............
      }
      
    ?>
    und folgendes Formular benutzt

    PHP-Code:
    <?php
    include 'test1.php';
    include 
    'test2.php';
    include 
    'test3.php';
    include 
    'test4.php';
    include 
    'test5.php';
    include 
    'test6.php';
    ?>
    <form action="<?=$_SERVER['PHP_SELF']?>" method="get"> 
    <label for="1">1<input type="text" id="1" name="1"> </label> 
    <label for="2">2<input type="text" id="2" name="2"> </label>
    <label for="3">3<input type="text" id="3" name="3"> </label> 
    <label for="4">4<input type="text" id="4" name="4"> </label>
    <label for="5">5<input type="text" id="5" name="5"> </label> 
    <label for="6">6<input type="text" id="6" name="6"> </label>
    <input type=submit name="submit" value="abschicken">
     
    </form>
    Es wird die Reihenfolge der Buchstaben im Alphabet angezeigt, also bei Aladin z.B. 1, 12, 1, 4, 9, 14.
    Dazu habe ich eine Hauptdatei (test.php mit einen Formular (6 Felder) und 6 PHP-Dateien (test1.php,
    test2.php, test3.php, test4.php, test5.php und test6.php) angelegt.

    Wie kann ich das ändern?

    MfG maclinux
    Zuletzt geändert von maclinux; 23.09.2018, 18:46.

  • #2
    Ganz stumpf: Geh jeden Buchstaben des Alphabets durch. Für jeden Buchstaben gehst du jeden Buchstaben des Strings durch. Dann kannst du bei jedem Treffer einen Counter hochsetzen und dessen Wert in ein drittes Array unter dem Index des Buchstaben im String ablegen.

    Kommentar


    • #3
      Hallo chorn,

      wie würde das ungefähr aussehen?
      Ich bin die letzten 2 Wochen sämtliche Tricks durchgegangen.

      Mit den Zähler hochsetzen (Bei dem Beispiel ALADIN das doppelte A) okay, aber wie bekomme ich es hin, dass das D die dritte Reihenfolge bekommt
      usw.?

      Wie gesagt, bisher waren die Anforderungen für Webapplikationen relativ
      gering, aber mein Privatprojekt bewegt sich auf ein ganz anderes Level.

      MfG maclinux

      Kommentar


      • #4
        wie würde das ungefähr aussehen?
        Array mit Alphabet, Array mit Buchstaben aus String, Zähler und leeres Ziel-Array. Dann zwei verschachtelte Schleifen, eine Bedingung, eine Zuweisung und eine Operation auf dem Zähler.

        aber wie bekomme ich es hin, dass das D die dritte Reihenfolge bekommt
        Wie beschrieben: Du gehst vornehmlich das Array mit dem Alphabet durch. Das zweite gefundene A bekommt dann die 2, und da du nur Treffer zählst bekommt das D die 3.

        Kommentar

        Lädt...
        X