0 votes
in SoSci Survey (dt.) by s157182 (280 points)
edited by SoSci Survey

Hallo zusammen,

ich habe folgendes Array erstellt:

$TATP = array("TA","TA","TP","TP"); 
shuffle($TATP); 

Nach dem Mischen dieses Arrays würde ich gerne ein weiteres Array erstellen. Wenn Index 0 des Arrays $TATP = TA ist, soll das Bild "GG1_T2.png" verwendet werden, wenn der Index 0 jedoch den Inhalt = TP hat, soll das Bild "GG1_T1.png" im Array $GG1 gespeichert werden (neben den anderen Bildern). Ich hatte dies folgendermaßen probiert, allerdings funktioniert dies nicht.

if ($TATP[0] == "TA"); {
$GG1 = array("GG1_D1.png", "GG1_D2.png", "GG1_D3.png", "GG1_D4.png", "GG1_D5.png", "GG1_T2.png"); 
}
if ($TATP[0] == "TP"); {
$GG1 = array("GG1_D1.png", "GG1_D2.png", "GG1_D3.png", "GG1_D4.png", "GG1_D5.png", "GG1_T1.png"); 
}
shuffle($GG1); 

Ich freue mich über Hilfe.

Liebe Grüße

1 Answer

0 votes
by SoSci Survey (330k points)

Fast richtig ... nur die Strichpunkte nach der IF-Klammer machen alles zunichte. Der Strichpunkt bedeutet: Hier ist der Befehl aus. Den Code...

if ($TATP[0] == "TA"); {
$GG1 = array("GG1_D1.png", "GG1_D2.png", "GG1_D3.png", "GG1_D4.png", "GG1_D5.png", "GG1_T2.png"); 
}

Könnte man also auch wie folgt schreiben:

if ($TATP[0] == "TA");

{
  $GG1 = array("GG1_D1.png", "GG1_D2.png", "GG1_D3.png", "GG1_D4.png", "GG1_D5.png", "GG1_T2.png"); 
}

Die gescheiften Klammern fassen nur Befehle zusammen - also könnte man auch schreiben:

if ($TATP[0] == "TA");
$GG1 = array("GG1_D1.png", "GG1_D2.png", "GG1_D3.png", "GG1_D4.png", "GG1_D5.png", "GG1_T2.png");

Und wenn wir das auf Ihren komplette Cone übertragen:

if ($TATP[0] == "TA");
$GG1 = array("GG1_D1.png", "GG1_D2.png", "GG1_D3.png", "GG1_D4.png", "GG1_D5.png", "GG1_T2.png"); 
if ($TATP[0] == "TP");
$GG1 = array("GG1_D1.png", "GG1_D2.png", "GG1_D3.png", "GG1_D4.png", "GG1_D5.png", "GG1_T1.png"); 
shuffle($GG1);

Und nachdem das IF hier nichts macht, weil bis zum Strichpunkt ja keine Befehle kommen...

$GG1 = array("GG1_D1.png", "GG1_D2.png", "GG1_D3.png", "GG1_D4.png", "GG1_D5.png", "GG1_T2.png"); 
$GG1 = array("GG1_D1.png", "GG1_D2.png", "GG1_D3.png", "GG1_D4.png", "GG1_D5.png", "GG1_T1.png"); 
shuffle($GG1);

Mit anderen Worten, die Variable $GG1 wird immer zweimal definiert, wobei die zweite Definition die erste überschreibt.

Und wenn Sie gerade am optimieren sind: Vielleicht möchten Sie anstatt des Ararys mit dem shuffle() für $TATP einen Zufallsgenerator mit 4 Zetteln anlegen, aus dem immer 4 Zettel gezogen werden. Das was Sie beschreiben klingt nach einem Experiment - und da brauchen Sie die Daten aus der Ziehung ohnehin :)

asked Jan 19, 2021 in SoSci Survey (dt.) by s157182 (280 points) mehrere Arrays mischen

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...