Fehlende richtige Antworten aus Array entnehmen

  • Hey zusammen,


    ich programmiere gerade ja ein Frage-Antwort Spiel. Ich möchte, das wenn der User eine fehlerhafte Antwort zu der Frage angibt, zu dieser dann die richtige Antwort aus dem Array richtigeAntworten entnommen wird. Da im Array die Keys fest zugeordnet sind und der User ja die Antwort in unterschiedlicher Reihenfolge angeben kann ist dies garnicht so einfach.


    Diese Suche ist bei mir statisch (nach dem Array Key) und nicht dynamisch wie es eigentlich sein sollte. Ich habe trotz viel ausprobieren mit vielen Funktionen und anderen Schleifen es nicht hinbekommen, dass dies dynamisch ist.


    Mein statisches Beispiel sieht so aus:

    Ich bin gerade überfragt und weiß nicht mehr weiter.


    Habt ihr denn dazu hilfreiche Vorschläge wie ich dies dynamisch programmieren kann?


    Grüße,

    Stef

  • Ich verstehe das Ganze noch nicht: Gibt es bei einem Durchgang eine Frage und dazu mehrere richtige Antworten? Oder gibt es mehrere Fragen und zu jeder genau eine richtige Antwort? Im letzteren Fall würde ich eine Zuordnung der richtigen Antwort zu der Frage herstellen.

  • Ich glaube, Du weißt selber gar nicht, was Du machst.

    Bei einem Frage-Antwort Bezug sollten die richtigen Antworten über die Frage gemapped sein!

    D.h., wenn jemand die Frage falsch beantwortet, musst Du die richtigen Antworten zu der Frage und nicht zu den falschen Antworten finden.

  • Hey,


    Sempervivum : Ich habe 1 ne Frage und es kann zu dieser Frage auch mehrere richtige Antworten geben. Die Anwortmöglichkeit zu jeder Frage ist dynamisch.


    Arne Drews : Verstehe nicht wie du es meinst.

    ________________________________________________________________________


    Mein Ziel ist es, wenn das Spiel zu Ende ist die Falschen Antworten zu den Fragen aufzulisten und dazu dann die richtigen Antworten die gefehlt haben aufzulisten.


    Beispiel (Frage vom anderen Thema):


    Frage: Welche Vorbereitungen muss man bei einer Webanwendung treffen?


    Richtige Antworten von mir:


    • Konzept festlegen
    • Design festlegen
    • Zielgruppe festlegen


    Nun antwortet der User:

    • Design festlegen
    • Informationen holen
    • Konzept festlegen


    Dabei passt Antwort 2 des Users nicht. Dann soll aus dem Array wo die richtigen Antworten drin sind die dazu richtige Antwort dynamisch herausgesucht werden.


    In diesem Beispiel wäre dann diese richtige Antwort "Zielgruppe festlegen".

    ____

    Die Ausgabe nach dem Spiel wäre dann:


    Frage: Welche Vorbereitungen muss man bei einer Webanwendung treffen?

    Falsche Antwort: Informationen holen

    Richtige Antwort wäre gewesen: Zielgruppe festlegen

    ____


    Ich gehe ja mit $getRighAnswer[$questionNumber] bereits in die richtigen Antworten der jeweiligen Frage rein.



    Somit habe ich, wenn die Fragenummer 0 ist, bei dieser Frage folgende Value von $getRighAnswer[$questionNumber]array([0] => Konzept festlegen , [1] => Design festlegen , [2] => Zielgruppe festlegen) 

    $userAnswers hat dann folgende Value:

    array([0] => Design festlegen , [1] => Informationen holen , [2] => Konzept festlegen)



    Nur mein Code bringt eben nicht das richtige Ergebnis. Mit unset funktioniert es ja auch nicht.

    Der Grund ist der, dasss der Array Key die Variable ist welche nach jedem Schleifendurchgang hochgezählt wird. Somit kommt bei dem oben genannten Beispiel als Ergebnis dies raus: array(1) { [0]=> string(16) "Design festlegen" }.

    Grüße,

    Stef

  • Jo, ist genau was ich in #3 geschrieben habe, Dein Beitrag bestätigt mir nur, dass Du nicht verstehst, was Du tust.


    Du hast eine Frage, die idealer Weise über eine ID (eindeutige Kennung) referenzierbar ist.

    Nehmen wir mal spaßeshalber an, Deine Frage Welche Vorbereitungen muss man bei einer Webanwendung treffen? wird über die ID 1 referenziert.

    Nehmen wir weiter an, dass zu dieser Frage drei richtige Antworten auf die ID gemapped sind:

    • Design festlegen
    • Konzept festlegen
    • Zielgruppe festlegen

    Jetzt antwortet gibt der User nur zwei korrekte und eine falsche Antwort, wie in Deinem Beispiel.


    Sofern Du die Antworten in einem Array hast, ist das ein simples array_diff()bzw. array_intersect(), das herauszufinden überlasse ich Dir.

  • Hey,


    okay. Ich kam eben nicht weiter und habe alles mögliche versucht. Vieles habe ich aber verstanden, kam eben nur nicht an das Ergebniss welches ich erreichen wollte.


    Vielen Dank für die 2 Funktionsvorschläge. Auf diese 2 Funktionen bin ich noch garnicht gestoßen. Mit denen klappt es richtig einfach.

    Es funktioniert nun alles wie es sein soll. :)


    Grüße,

    Stef

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!