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

0 votes

Hallo liebes Support-Team,

ich habe innerhalb einer Frage verschiedene Itemblöcke, die ich mittels
shuffle() rotiere. Nun möchte ich die Reihenfolge in der die Probanden die Blöcke
angezeigt bekommen speichern. Wie funktioniert das?

Vielen Dank im Voraus!

blocks = array(
  array(1,2),
  array(3,4),
  array(5,6),
  array(7,8),
  array(9,10)
);


shuffle($blocks);

$items = array();
for ($i=0; $i<count($blocks); $i++) {
  $items = array_merge($items, $blocks[$i]);
}


question('WV01', $items);
in SoSci Survey (dt.) by s099391 (120 points)
edited by SoSci Survey

1 Answer

0 votes

Beispiel-Codes, wie man eine zufällige Abfolge speichert, sind in der Anleitung zu put() zu finden.

Da Sie Paare rotieren, empfehle ich eine kleine Modifikation des Codes - damit Sie die Ränge oder Abfolge einfacher speichern können:

$blocks = array(
  1 => array(1,2),
  2 => array(3,4),
  3 => array(5,6),
  4 => array(7,8),
  5 => array(9,10)
);

$keys = array_keys($blocks);
shuffle($keys);

$items = array();
foreach ($keys as $key) {
  $items = array_merge($items, $blocks[$key]);
}


question('WV01', $items);

Jetzt können Sie mit den Codes aus der Anleitung zu put() recht einfach die Variable $keys abspeichern.

by SoSci Survey (238k points)
Vielen Dank für die schnelle Antwort!

Stimmt der Code so?

for ($i=0; $i<count($blocks); $i++) {
  // Kennung der internen Variable aus Frage-Kennung plus Index erstellen
  $id = id('WV04', $i + 1);
  // Hier den Wert aus dem Array speichern
  put($id, $keys[$i]);
}
Kommt drauf an, was Sie speichern möchten - wenn Sie in einem technischen Funktionstest die erwarteten Werte im Datensatz finden (also die, die Sie für die weitere Auswertung benötigen), dann stimmt es so.
Ich erhalte fünf Variablen, in denen jeweils eine Blocknummer gespeichert ist. Ist es auch möglich alle Informationen in einer Variable zu speichern?
Natürlich - aber dann wir die spätere Verarbeitung vermutlich schwieriger:

put('WV04_01', implode(', ', $keys));

Es wäre auch möglich, die Nummer der Items entweder in eine Liste zu schreiben (wie hier) oder in 10 Variablen zu speichern.
...