carsten schlichting: switch soll 2 case_Fälle auf einmal ansprechen.

0 44

switch soll 2 case_Fälle auf einmal ansprechen.

carsten schlichting
  • php
  1. 1
    Fabian St.
    1. 0
      carsten schlichting
      1. 0
        Fabian St.
        1. 0
          carsten schlichting
          1. 0
            Tom
            1. 0
              Der Martin...
            2. 0
              carsten schlichting
      2. 0
        Tom
      3. 0
        Vinzenz Mai
  2. 0
    Tobias Kloth
    1. 0
      Tom
      1. 0
        carsten schlichting
        1. 0
          Sven Rautenberg
          1. 0
            carsten schlichting
            1. 0
              Tom
              1. 0
                carsten schlichting
                1. 0
                  Tom
                  1. 0
                    carsten schlichting
            2. 0
              Sven Rautenberg
              1. 0
                carsten schlichting
          2. 0
            carsten schlichting
          3. 0
            dedlfix
            1. 0
              carsten schlichting
              1. 0
                dedlfix
            2. 0
              Tom
    2. 0
      carsten schlichting
  3. 1

    Entscheidungsmatrix

    Der Martin...
    • programmiertechnik
    1. 0
      Tom
      1. 0
        Der Martin...
        1. 0
          carsten schlichting
          1. 0
            carsten schlichting
    2. 0
      Carsten schlichting
      1. 0
        Der Martin...
        1. 0
          carsten schlichting
  4. 0
    Christoph Zurnieden
    1. 0
      carsten schlichting
      1. 0
        Christoph Zurnieden
    2. 0
      Christian Kruse
      1. 0
        Tobias Kloth
        1. 0
          Christian Kruse
          1. 0
            Christoph Zurnieden
            1. 0
              Christian Kruse
              1. 0
                Christoph Zurnieden

Hallo

kennt sich jemand gut mit switch ... case Bedingungen aus?

habe eine Reihe von Ebenen, die ich teilweise auch zusammen einblenden möchte.

dies wollte ich mit einem switch lösen, der gleichzeitig 2 case_Fälle darstellt.

Geht das?

Liebe Grüße

carsten

  1. Hi!

    kennt sich jemand gut mit switch ... case Bedingungen aus?

    habe eine Reihe von Ebenen, die ich teilweise auch zusammen einblenden möchte.

    dies wollte ich mit einem switch lösen, der gleichzeitig 2 case_Fälle darstellt.

    Geht das?

    Du willst also erreichen, dass die gleiche Anweisung bei zwei unterschiedlichen Bedigungen ausgeführt wird? Wenn ja, dann verrät dir das dritte Beispiel zu switch wie dies funktioniert.

    Grüße,
    Fabian St.

    1. hi Danke erstmal

      nein ich möchte 2 case_Fälle gleichzeitig ausführen. Tom meinte aber das ginge nicht, weil nach dem ersten Treffer das switch auf jedenfall verlassen werden würde.
      vielleicht stimmt das ja. dann müßte man alles in eine for-Schleife einbauen und den switch 2 mal durchlaufen??

      viele grüße von mir

      carsten

      1. Hi!

        nein ich möchte 2 case_Fälle gleichzeitig ausführen. Tom meinte aber das ginge nicht, weil nach dem ersten Treffer das switch auf jedenfall verlassen werden würde.
        vielleicht stimmt das ja. dann müßte man alles in eine for-Schleife einbauen und den switch 2 mal durchlaufen??

        Natürlich stimmt es - so steht es ja auch in dem von mir verlinkten Manual-Eintrag. Was spricht dagegen, eine alternative Kontrollstruktur à la if, elseif, else zu benutzen?
        Ansonsten müsstest du schon deutlicher werden und uns eventuell einen Code-Ausschnitt zeigen, damit die Rahmenbedingungen klarer werden.

        Grüße,
        Fabian St.

        1. Hi

          ich habe gerade dem Sven weiter oben noch einmal genauer beschrieben, was ich vor habe.

          dass ich durch weglassen des break auch die anderen case_Fälle abarbeiten kann ist mir schon klar geworden. Dies ist aber nicht genau das was ich suche. Bei mir muß alles noch flexibler sein. aber lest oben die Post auch, dann versteht ihr mich.

          grüße von mir

          carsten

          1. Hello,

            dass ich durch weglassen des break auch die anderen case_Fälle abarbeiten kann ist mir schon klar geworden. Dies ist aber nicht genau das was ich suche. Bei mir muß alles noch flexibler sein. aber lest oben die Post auch, dann versteht ihr mich.

            Ich wette mit Dir um 10 Harte Harzer, dass Du Dir Deine Problemstellung noch nicht einmal grafisch skizziert hast. Und deshalb weißt Du selber noch nicht genau, was Du eigentlich haben willst.

            Ich rate ferner, dass Du eine Matrix aus Handlern und Kriterien haben möchtest. Ist in einem der dem Handler zugeordeten Kriterienfelder eines erfüllt, soll der Handler ausgeführt werden.

            Harzliche Grüße vom Berg
            esst mehr http://www.harte-harzer.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            1. Hallo Tom,

              Ich rate ferner, dass Du eine Matrix aus Handlern und Kriterien haben möchtest. Ist in einem der dem Handler zugeordeten Kriterienfelder eines erfüllt, soll der Handler ausgeführt werden.

              Kann es sein, dass wir die gleiche Vorstellung und einen sehr ähnlichen Denkansatz haben?

              Ciao,

              Martin

            2. hab icke doch..

              das 2. kapier ich jetzt noch nicht so ganz,

              aber ich sag kurz, wie weit ich schon bin.

              ich weiß alle meine möglichenSeiten.

              ich weiß alle meine schaltflächen

              ich weiß alle Funktionen, die diese schaltflächen ausführen müssen.

              wird eine schaltfläche angeklickt krieg ich den wert so übermittelt:  index.php?schaltfläche=12(z.B.)

              jetzt habe ich einen ewiglangen switch:

              switch($schaltfläche_seite)

              mit allen Fällen z.B.

              case (12_begruessung1): $ layoutparameter[]=("..."==>"Wert",usw)

              und jetzt muß ich mit diesen parametern bestimmen welche case_Fälle meines layoutes aufgerufen werden sollen.( dieser case_fall über den wir gerade immer reden, beinhaltet mein ganzes Layout)

              aber erklär mal was schwebt Dir im Hinterkopf mit matrix aus Händlern und kriterien???

              sagst Dus ;-)

              ich weiß schon --es ist die Lücke in meinem script, die bestimmt, welche divs eingeblendet werden( obwohl dies größtenteils als fleißarbeit in die Layoutparameter eingetragen wird)
              bin offen für Anregungen.

              carsten

      2. Hello,

        nein ich möchte 2 case_Fälle gleichzeitig ausführen. Tom meinte aber das ginge nicht, weil nach dem ersten Treffer das switch auf jedenfall verlassen werden würde.

        Nein!
        Das hat Tom nicht gesagt ;-)

        Lies nochmal genau nach:

        Die Übereinstimmung stellt den _Einsprungspunkt_ in die Liste dar.
        Der Aussprungspunkt wird durch break gekennzeichnet
        Nach erfolgtem Treffer wird _kein weiterer Vergleich_ durchgeführt.

        Harzliche Grüße vom Berg
        esst mehr http://www.harte-harzer.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
      3. Hallo Carsten,

        nein ich möchte 2 case_Fälle gleichzeitig ausführen. Tom meinte aber das ginge nicht, weil nach dem ersten Treffer das switch auf jedenfall verlassen werden würde.

        nein, Tom spricht von Einsprungpunkten, nicht vom Verlassen. Für Verlassen ist "break" zuständig.

        vielleicht stimmt das ja. dann müßte man alles in eine for-Schleife einbauen und den switch 2 mal durchlaufen??

        Nein. Passe doch bitte den Code von Tobias an Deine Problemstellung an. Wobei Du zu berücksichtigen hast, dass Deine zwei "gleichzeitig" abzuarbeitenden case-Fälle die Fälle

        1) foo
         2) bar

        sind.

        3) foobar

        ist was anderes :-) Gibt es keinen weiteren Fall, dann verstehe ich den Einsatz von switch nicht.

        Freundliche Grüße

        Vinzenz

  2. Hallo carsten,

    dies wollte ich mit einem switch lösen, der gleichzeitig 2 case_Fälle darstellt.

    meinst du sowas:

    switch($var){  
    case 'foo':  
    case 'bar':  
        # das wird ausgefuehrt wenn $var=='foo' und wenn $var=='bar'  
        break;  
    case 'foobar':  
        # wird ausgefuehrt wenn $var=='foobar'  
        break;  
    default:  
        # nochwas  
        break;  
    }
    

    Grüße aus Nürnberg
    Tobias

    1. Hello,

      Kleine Ergänzung:

      switch($var)

      {

      case 'foo':

      # das wird ausgeführt, wenn $var=='foo'
            ## hier fehlt das break absichtlich!

      case 'bar':

      # das wird ausgefuehrt wenn $var=='foo' oder wenn $var=='bar'

      break;
      case 'foobar':
          # wird ausgefuehrt wenn $var=='foobar'
          break;
      default:
          # nochwas
          break;
      }

      Da es meistens dieselben Verständnisschwierigkeiten gibt, hier eine
      Funktionsbeschreibung von switch:

      Die Übereinstimmung stellt den _Einsprungspunkt_ in die Liste dar.
      Der Aussprungspunkt wird durch break gekennzeichnet
      Nach erfolgtem Treffer wird _kein weiterer Vergleich_ durchgeführt.

      Harzliche Grüße vom Berg
      esst mehr http://www.harte-harzer.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      1. Hi Tom

        bist Du Dir total und ganz sicher, das bei erfolgtem Treffer nicht weiter gesucht wird. --> Dann ginge das, was ich suche ja auf keinem Fall!!!

        Könnte man eventuell alles in eine For schleife setzen und die case_fälle 2 mal durchlaufen.??

        1. Moin!

          bist Du Dir total und ganz sicher, das bei erfolgtem Treffer nicht weiter gesucht wird. --> Dann ginge das, was ich suche ja auf keinem Fall!!!

          Was genau suchst du denn? Rede nicht immer um den heißen Brei herum.

          Switch prüft exakt EINE Variable, und zum Zeitpunkt der Prüfung kann diese Variable auch nur EINEN Wert haben - und entsprechend dieses Wertes geht Switch dann an der Stelle los, wo das zum Variablenwert passende CASE steht, und macht solange weiter, bis es auf ein Break trifft. Zwischendurch befindliche weitere CASE stören die Programmausführung nicht und halten sie auch nicht an.

          Nach dem Break geht es nach dem Switch-Befehl weiter.

          - Sven Rautenberg

          1. ich hab gedacht, das es eventuell auch einen syntax gibt, mit dem man 2 oder mehrere casefälle ansteuern könnte.

            Z. B. anstatt über einen normalen wert , über ein array

            1. Hello,

              ich hab gedacht, das es eventuell auch einen syntax gibt, mit dem man 2 oder mehrere casefälle ansteuern könnte.

              das wäre dann durch eine Anreihung von if() gegeben:

              if($var == 1)
                {
                  #tu was;
                }

              if($var == 3)
                {
                  #tu was anderes;
                }

              if($var == 1 or $var == 4)
                {
                  #tu noch was anderes;
                }

              Alle anderen Lösungen wäre sicher teurer.

              Z. B. anstatt über einen normalen wert , über ein array

              Harzliche Grüße vom Berg
              esst mehr http://www.harte-harzer.de

              Tom

              --
              Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
              Nur selber lernen macht schlau
              1. hi

                was meinst du denn mit teurer?

                Theoretisch wär das doch super, wenn das gehen könnte.

                werd das mal mit der For-Schleife probieren.
                werd ein Array anlegen , mit den case_fällen, die ich haben möchte und dann irgendwie die anzahl der datensätze des array auslesen und die For_schleifen versuchen damit zu steuern.

                Mal sehen , ob ich das hinkrieg.

                viele Grüße

                carsten

                1. Hello,

                  was meinst du denn mit teurer?

                  Unter "teuer" versteht man i.R. eine Technik, die vielleicht bequem für den Programmierer ist, aber dem armen Prozessor später wesentlich viel mehr Arbeit macht, als wenn der Programmierer einmal gleich richtig nachgedacht hätte. (frei übersetzt)

                  werd das mal mit der For-Schleife probieren.
                  werd ein Array anlegen ,

                  "Arrays" und Forschleifen passen in PHP nicht so gut zusammen.
                  Dafür gibt es foreach(), eine spezielle Schleifenkonstruktion für das abarbeiten der verketteten Listen (PHP-Arrays).

                  Harzliche Grüße vom Berg
                  esst mehr http://www.harte-harzer.de

                  Tom

                  --
                  Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                  Nur selber lernen macht schlau
                  1. Danke!!!

                    dann nehmen wir foreach!! ;-)

                    Aber auf mich wirkt das jetzt als gute machbar Lösung. besser als wenn ich immer alle Divs hochladen müßte , um sie dann mit hidden zu verstecken -oder?

            2. Moin!

              ich hab gedacht, das es eventuell auch einen syntax gibt, mit dem man 2 oder mehrere casefälle ansteuern könnte.

              Was soll das heißen?

              Zwei oder mehr case-Fälle ansteuern geht, wie beschrieben:

                
              switch $variable {  
                case 1:  
                case 2:  
                case 3:  
                        echo 'Code für die Fälle $variable=1 oder 2 oder 3';  
                        break;  
                case 4:  
                        echo 'Code für den Fall $variable=4';  
                        break;  
                default:  
                        echo 'Code für jeden andern Fall';  
                        break;  
              }  
              
              

              Z. B. anstatt über einen normalen wert , über ein array

              Ich hatte noch nie das Verlangen, ein Switch zu bauen, bei dem ich den Inhalt einer Variablen mit einem Array auf Identität vergleichen wollte.

              Kannst du dein Problem insgesamt bitte mal deutlicher machen, mir scheint, du willst eine alternative Lösung, ohne selbst drauf zu kommen.

              - Sven Rautenberg

              1. Hi

                in meiner ersten post hab ich gedacht alles richtig beschrieben zu haben.

                Aber also... sorry

                mit Ebenen meine ich natürlich divs mit Absolut_Positionierungen und verschiedenen z- indizen(?)

                ich möchte eben vermeiden diese ganzen divs immer alle als HTML ausgeben zu müssen und dann eventuell über "hidden" auszublenden.
                sondern:  ich möchte schon in PHP sagen, dass das und das div  eingeblendet werden soll und die anderen nicht.

                grüße
                carsten

          2. hallo Swen

            Switch prüft exakt EINE Variable, und zum Zeitpunkt der Prüfung kann diese Variable auch nur EINEN Wert haben - und entsprechend dieses Wertes geht Switch dann an der Stelle los, wo das zum Variablenwert passende CASE steht, und macht solange weiter, bis es auf ein Break trifft. Zwischendurch befindliche weitere CASE stören die Programmausführung nicht und halten sie auch nicht an.

            wenn der switch jetzt seinen casefall gefunden hätte und von da ab dann weitergelesen wird... könnte man dann mit einem 2. switchBefehl die restlich case_Fälle noch einmal unterscheiden?

          3. echo $begrüßung;

            Switch prüft exakt EINE Variable,

            Nun ja, das ist nicht ganz exakt. Switch vergleicht einen Ausdruck mit den jeweiligen Ausdrücken hinter den cases.

            Solch ein Konstrukt wird ohne zu Murren ausgeführt:

            switch (true) {
              case $a == $b: ...;
              case $c > 42: ...;
            }

            Aber das nur nebenbei...

            echo "$verabschiedung $name";

            1. hi dedifix

              sehr interessant,

              mich würd jetzt interessieren, ob man so auch mehrere case_Fälle ausführen kann und ob du das schon getestet hast. Ansonsten probier ichs mal. hört sich interessant an.

              viele Grüße

              carsten

              1. echo $begrüßung;

                mich würd jetzt interessieren, ob man so auch mehrere case_Fälle ausführen kann

                An der restlichen Arbeitsweise von switch, so wie sie dir schon erläutert wurde ändert das nichts. Am ersten case-Ausdruck, dessen Ergebnis mit dem Ergebnis des switch-Ausdrucks übereinstimmt wird die Abarbeitung angefangen. Weitere case-Ausdrücke interessieren nicht mehr. Am nächsten break wird das switch ganz verlassen.

                und ob du das schon getestet hast.

                Ja, ich habe das getestet. Ich denke jedoch nicht, dass das dein Grundproblem löst.

                So wie ich das zu verstehen glaube, hast du feste HTML-Teile und zwischendrin immer mal wieder variable. Du wist nicht drumrumkommen, jeden variablen Teil getrennt zu betrachten.

                Vielleicht ist jedoch ein Template-System die Lösung deines Problems.
                PEAR bietet ein paar an: http://pear.php.net/manual/en/package.html.php
                Mein Favorit ist HTML_Template_IT, bzw. wenn es komplexer sein soll das darauf aufbauende HTML_Template_Sigma.

                echo "$verabschiedung $name";

            2. Hello,

              Solch ein Konstrukt wird ohne zu Murren ausgeführt:

              switch (true) {
                case $a == $b: ...;
                case $c > 42: ...;
              }

              Das wird aber nicht mehr als echtes Switch aufgelöst. Und damit wird es auch teuer. Steht sogar irgendwo nachzulesen, dass man das lieber vermeiden soll.

              Harzliche Grüße vom Berg
              esst mehr http://www.harte-harzer.de

              Tom

              --
              Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
              Nur selber lernen macht schlau
    2. Hi danke_erst_mal:

      wird jetzt hier bei case'foobar':  auch case'bar': und case'foo': ausgeführt. ich glaub nicht oder? wenn bei foobar sowohl foo als auch bar ausgefürt werden würde, wär es genau das, was ich suche.

      grüße von mir
      carsten

  3. Hallo Carsten,

    anhand deiner vielen konfusen Erklärungsansätze (ja, Ansätze: Du hast uns immer noch nicht verraten, was _wirklich_ dein Problem ist) habe ich jetzt zumindest ein vage Vermutung, was du vorhast.

    Du möchtest mit einem PHP-Script verschiedene Seiten generieren. Diese Seiten sind alle nach dem gleichen Grundmuster gestrickt, nur dass eine bestimmte Anzahl von Elementen in einigen Seiten vorhanden sein sollen, in anderen wiederum nicht.

    Ich würde das eher mit einer Matrix lösen als mit einer gigantischen switch-Anweisung. Also z.B. ein zweidimensionales Array von Bool-Werten, im einen Index die Seite, die generiert werden soll, im anderen Index das Objekt, das möglicherweise angezeigt werden soll.

    Ungefähr so:

    Objekt: | Blaues  Rotes Grünes Gelbes Weißes
               |  Feld   Feld   Feld   Feld   Feld
    Seite:     |
    -----------------------------------------------
    Abraham    |   ja     ja    nein    ja    nein
               |
    Bebraham   |   ja     ja    ja     nein   nein
               |
    Zebraham   |   ja    nein   nein   nein   nein
               |
    Ashrahat   |  nein   nein    ja     ja     ja
               |
    Fahrradhat |   ja     ja     ja     ja    nein

    Jetzt brauchst du nur noch mit einem Index (dem gefragten Objekt) durch dieses Array zu laufen, der andere Index ergibt sich ja durch die Seite, die generiert werden soll. Ist der jeweilige Arrayeintrag true (ja), stelle das Objekt dar, ansonsten lass es.

    Nur dass wir uns richtig verstehen: Dieser Ansatz hat _nichts_ mit deiner Idee mit den switch-Anweisungen zu tun, es ist ein völlig anderer Ansatz. Aber ich denke, er ist flexibler und übersichtlicher.
    Und noch dazu leichter zu ändern bzw. zu erweitern, wenn das Design mal wachsen sollte.

    Good luck,

    Martin

    1. Hello,

      Objekt: | Blaues  Rotes Grünes Gelbes Weißes
                 |  Feld   Feld   Feld   Feld   Feld

      Seite:
      Abraham
      Bebraham
      Zebraham
      Ashrahat
      Fahrradhat

      Jetzt brauchst du nur noch mit einem Index (dem gefragten Objekt) durch dieses Array zu laufen,

      er braucht eventuell sogar nur nur array_sum() von dem entsprechenden Sub-Array zu bilden. Wenn auch nur eins der Kriterien gesetzt ist, ist sie ja größer 0

      Harzliche Grüße vom Berg
      esst mehr http://www.harte-harzer.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      1. Hi,

        Objekt: | Blaues  Rotes Grünes Gelbes Weißes
                   |  Feld   Feld   Feld   Feld   Feld

        Seite:
        Abraham
        Bebraham
        Zebraham
        Ashrahat
        Fahrradhat

        er braucht eventuell sogar nur nur array_sum() von dem entsprechenden Sub-Array zu bilden. Wenn auch nur eins der Kriterien gesetzt ist, ist sie ja größer 0

        Im ersten Moment dachte ich, "ey, boah, geniale Idee". Aber dann war sie doch nicht ganz so toll:
        Wenn er spaltenweise summiert, bekommt er nur heraus, ob z.B. das Rote Feld auf _irgendeiner_ seiner Seiten auftaucht. Das ist nicht sehr informativ.
        Summiert er zeilenweise, dann erfährt er, ob die Zebraham-Seite _irgendeines_ der fraglichen Felder enthält. Damit fängt er auch nix an.

        Oder hab ich was übersehen?

        So long,

        Martin

        1. Hi

          |  Feld   Feld   Feld   schaltfl

          Seite:
          Abraham
          Bebraham
          Zebraham
          Ashrahat

          Fahrradhat |   ja     ja     ja     abraham
          »»

          so wie die Tabelle ist, ist es schon super gut, da ich ja genau weiß, wie all meine Seiten aussehen sollen.

          jetzt muß ich nur auch noch die schaltflächen in die tabelle mit integrieren und auch variablen für texteinsätze und so alles.

          dann könnte ich , mit dem Wissen, auf welcher Seite ich mich gerade befinde, der gedrückten schaltfläche genau die seite zuweisen, die dann aufgerufen werden muß.

          also danke nochmal

          wie kann ich denn ein array in so einer tabellenform kreieren?

          1. dann könnte ich , mit dem Wissen, auf welcher Seite ich mich gerade befinde, der gedrückten schaltfläche genau die seite zuweisen, die dann aufgerufen werden muß.

            "der zu drückenden schaltfläche "muß das natürlich heißen. werde in den Link dann index.php?seite=abraham usw. einsetzen.

            Und Dies ist ganz wichtig für mich, weil ich so ein optisch veranlagter Mensch bin:

            Kann ich ein array in so einer Tabellenform kreieren und php würde das verstehen?

            also danke und Grüße

            carsten

    2. Danke schön für die Post:

      Ich würde dies mal als den Tip des Jahrhunderts für mich bezeichnen. Hört sich wirklich gut an ,weiß gerade nur nicht in welchen Thread ich bin.

      Objekt: | Blaues  Rotes Grünes Gelbes Weißes
                 |  Feld   Feld   Feld   Feld   Feld

      Seite:
      Abraham
      Bebraham
      Zebraham
      Ashrahat
      Fahrradhat

      so wie du das array dargestellt hast ist ja alles super sauber.

      wie schafft man es denn, so eine Tabelle automatisch zu einem array zu verwandeln, oder kann php gar so ein Tabelle direkt verstehen ?

      weiter oben in meinem ursprünglichen Thread habe ich alles noch einmal genauer erklärt... was ich vorhabe, aber es entspricht deiner Beschreibung.

      also vielen dank nochmal

      carsten

      1. Hallo,

        Ich würde dies mal als den Tip des Jahrhunderts für mich bezeichnen.

        Na, wir wollen mal nicht übertreiben. Beschäftigst du dich schon seit ungefähr 20 Jahren mit Programmierung, Algorithmen und Datenstrukturen? Nein?
        Aber ich. Ein gewisser Vorsprung an Erfahrung ist also kein Hexenwerk.  ;-)

        wie schafft man es denn, so eine Tabelle automatisch zu einem array zu verwandeln, oder kann php gar so ein Tabelle direkt verstehen?

        Wohl kaum. Diese Darstellung habe ich gewählt, damit die Idee, die dahintersteckt, besser rüberkommt. Aber die PHP-Syntax für die Definition von Arrays ist dir doch sicher geläufig, oder?

        $matrix = Array
         ( "abraham"    => Array (true, true,false, true,false),
           ...
           "fahrradhat" => Array (true, true, true, true,false)
         );

        Angenommen, $seite hat die Werte "abraham" bis "fahrradhat" und $n ist der Index (0..4) für das gewünschte Feld, dann kannst du dieses Array nun mit $matrix[$seite][$n] adressieren.
        Klar soweit?
        Den letzten Schritt - die Umsetzung dieser Idee in dein eigenes Projekt- solltest du nun aber selbst schaffen.

        So long,

        Martin

        1. Hallo Martin

          dann ähnelt dies aber auch ganz schön dem , wie  ich schon gestartet bin- oder?https://forum.selfhtml.org/?t=113224&m=718240

          wennphp sowelche Tabellen verstehen könnte..wäre das ...naja superhypergeil.

          Gibt´s da eventuell genausoschnelle import_Möglichkeiten ...so ähnlich grafischer Tabellen.

          carsten

  4. Hi,

    damit nicht der Eindruck entsteht, im Selfforum würde allzuschnell aufgegeben ... ;-)

    Ich versuche mich mal an meiner frisch gereinigten Glaskugel:

    Du möchtest also das Ergebnis eines Formulars verarbeiten, das mehrere Elemente in unterschiedlicher Anzahl aus einer endlichen Grundmenge auswählen läßt.
    Beispiel sei ein Brief zum zusammenklicken:

    Anrede:
    1  [ ] Sehr verehrte Damen, geehrte Herren
    2  [ ] Sehr geehrte Herren
    3  [ ] Sehr verehrte Damen
    4  [ ] Lieber Jupp
    5  [ ] (eigener Text)

    Text:
    6  [ ] wir fordern sie hiermit und hierdurch und sowieso
    7  [ ] laut Rechnung vom ______ ist der fälligen Betrag
    8  [ ] die Firma Seiden&Shawl (Krefeld) möchte ihnen
    9  [ ] watt is nu mit die Kaaten füa die Noodkurve?
    10 [ ] (eigener Text)

    Verabschiedung
    11 [ ] mit freundlichen Grüßen
    12 [ ] mfg
    13 [ ] in Erwartung ihrer zahlreichen Bstellungen
    14 [ ] Hennes
    15 [ ] (eigener Text)

    Entspricht das in etwa Deinem Belang?
    Dann hast Du mehrere Möglichkeiten. Einmal kannst Du natürlich alle möglichen Kombinationen vorhalten und per switch() abklappern oder sie einzeln zusammenbauen.
    Für die erste Lösung wäre ein Bitarray günstig, da sich die so erhobenen Zahlen gut in einen switch() einpassen lassen. Entscheidender Nachteil: es kommt einiges an Menge zusammen.
    Besser wäre es den Bedarf Stück für Stück zusammenzubauen. Das geht aber auch per switch(). Du bekommst ja vom Formular eine Reihe von Werten zurück. Die werden in ein Array gepackt und mittels Loop durchgeswitched (Pseudocode):

    for $value in $input{
      switch($value){
        case 1: checkAndPrint(1);break;
        case 2: checkAndPrint(2);break;
        case 3: checkAndPrint(3);break;
        ...
        case 13: checkAndPrint(13);break;
        case 14: checkAndPrint(14);break;
        case 15: checkAndPrint(15);break;
        default: errorOccured();break;
      }
    }

    Sollte die Reihenfolge der Eingabe nicht mit der Ausgabe übereinstimmen ist halt zu mappen und zwischenzuspeichern.

    so short

    Christoph Zurnieden

    1. Hi

      danke für die Antwort.

      Aufjedenfall ist die for-Schleife das, was ich auch als lösung in Betracht gezogen habe.

      for $value in $input{
        switch($value){
          case 1: checkAndPrint(1);break;
          case 2: checkAndPrint(2);break;
          case 3: checkAndPrint(3);break;
          ...
          case 13: checkAndPrint(13);break;
          case 14: checkAndPrint(14);break;
          case 15: checkAndPrint(15);break;
          default: errorOccured();break;
        }
      }

      Mir wurde aber foreach  für den array empfohlen. Den syntax werd ich hoffentlich irgendwie zusammenbekommen.

      war das oben jetzt ein richtiger synthax, oder eher nur symbolisch zu verstehen.

      werd das auch dann im php-manual nachschauen

      aber danke und Grüße

      carsten

      1. Hi

        danke für die Antwort.

        Aufjedenfall ist die for-Schleife das, was ich auch als lösung in Betracht gezogen habe.

        Eine Lösung für ein immer noch unbekanntes Problem.
        Ist das, was ich vermutet hatte denn richtig?

        war das oben jetzt ein richtiger synthax, oder eher nur symbolisch zu verstehen.

        Wie der Ausdruck "Pseudocode" schon verzweifelt anzudeuten versucht: nur symbolisch.

        werd das auch dann im php-manual nachschauen

        Wenn es so läuft, wie in meinem Beispiel dürfte foreach wahrscheinlich passen.

        so short

        Christoph Zurnieden

    2. 你好 Christoph,

      for $value in $input{

      Das, mein Herr, ist aber kein PHP ;)

      再见,
       克里斯蒂安

      --
      73.255437% der Statistiken spielen eine Genauigkeit vor, die durch die angewandte Methode nicht gerechtfertigt wird.
      http://wwwtech.de/
      1. Hallo Christian,

        for $value in $input{
        Das, mein Herr, ist aber kein PHP ;)

        deswegen steht ja auch "Pseudocode" drüber :-)

        Grüße aus Nürnberg
        Tobias

        1. 你好 Tobias,

          for $value in $input{
          Das, mein Herr, ist aber kein PHP ;)
          deswegen steht ja auch "Pseudocode" drüber :-)

          Ja, eben. Ach, ich verstehe, den versteht wieder keiner *g*

          再见,
           克里斯蒂安

          --
          If God had a beard, he'd be a UNIX programmer.
          http://wwwtech.de/
          1. Hi,

            for $value in $input{
            Das, mein Herr, ist aber kein PHP ;)
            deswegen steht ja auch "Pseudocode" drüber :-)

            Ja, eben. Ach, ich verstehe, den versteht wieder keiner *g*

            Wieso nicht? Ich dachte eigentlich, das es Allgemeingut ist, das Pseudocode bedeutet, das der Autor schlicht zu faul war richtigen Code zu schreiben. Oder in meinem Fall die korrekte Syntax nachzuschlagen.

            Wäre es das nicht gäbe es auch für Pseudocode eine Syntax.

            so short

            Christoph Zurnieden

            1. 你好 Christoph,

              ich weiss, was Pseudocode ist ;) Ich wollte mit dem Beitrag lediglich einen
              Seitenhieb gegen PHP landen ;) (Weisst schon. Pseudocode. PHP. PHP ist
              Pseudocode.) Ich sag ja, meine Witze versteht keiner – irgendwie muss ich die
              _ständig_ erklären *g*

              再见,
               克里斯蒂安

              --
              Mensch zu Mathematiker: "Ich finde Ihre Arbeit ziemlich monoton". Mathematiker: "Mag sein! Dafür ist sie aber stetig und unbeschränkt."
              http://wwwtech.de/
              1. Hi,

                Ich sag ja, meine Witze versteht keiner – irgendwie muss ich die
                _ständig_ erklären *g*

                Nein, mir zumindest nicht.
                So, und jetzt noch mal zurück und meine Antwort in dem Licht gelesen.
                Jetzt klar?
                Nein?
                Siehst Du, mir geht's genau so wie Dir ;-)

                so short

                Christoph Zurnieden