Der vorgeschlagene Lösungsansatz war folgender
Ich würde tatsächlich empfehlen, dass Sie für jeden Block eine eigene
interne Variablen-Frage anlegen. Das ist in der Auswertung deutlich
(!) handlicher. Und in einer weiteren solchen Frage speichern Sie dann
(wie bisher schon) die Reihenfolge der Blöcke.
Stellen Sie sich einfach vor, Sie würden erst einmal nur die
Reihenfolge innerhalb der Blöcke rotieren. Nur, dass Sie dafür kkeine
eigene Variable definieren, sondern mit einem Eintrag (=ein Block) aus
dem "kompletten" Array aller Seiten arbeiten.
Legen Sie ein Array mit allen Block-Nummern (Sie haben diese als 1,
19, 37, ... bezeichnet) an und als Werte die Kennungen der IV-Fragen,
wo die Rotation hingespeichert werden soll. Dann können Sie in einer
kleinen FOREACH-Schleife gemütlich alle Blöcke rotieren und die
Abfolge abspeichern. Details gerne in einer neuen Frage hier im
Online-Support :)
Meine Blöcke sehen aus wie folgt:
$blocks = array (
'B1' => array('ID10CtT1Dec-ID10CtT1IT2','ID10CtT2Dec-ID10CtT2IT2','ID10CtT3Dec-ID10CtT3IT2','ID11CtT1Dec-ID11CtT1IT2','ID11CtT2Dec-ID11CtT2IT2','ID11CtT3Dec-ID11CtT3IT2',
'ID12CtT1Dec-ID12CtT1IT2','ID12CtT2Dec-ID12CtT2IT2','ID12CtT3Dec-ID12CtT3IT2','ID13CtT1Dec-ID13CtT1IT2','ID13CtT2Dec-ID13CtT2IT2','ID13CtT3Dec-ID13CtT3IT2',
'ID14CtT1Dec-ID14CtT1IT2','ID14CtT2Dec-ID14CtT2IT2','ID14CtT3Dec-ID14CtT3IT2','ID15CtT1Dec-ID15CtT1IT2','ID15CtT2Dec-ID15CtT2IT2','ID15CtT3Dec-ID15CtT3IT2'),
'B2' => array('ID20CtT1Dec-ID20CtT1IT2','ID20CtT2Dec-ID20CtT2IT2','ID20CtT3Dec-ID20CtT3IT2','ID21CtT1Dec-ID21CtT1IT2','ID21CtT2Dec-ID21CtT2IT2','ID21CtT3Dec-ID21CtT3IT2',
'ID22CtT1Dec-ID22CtT1IT2','ID22CtT2Dec-ID22CtT2IT2','ID22CtT3Dec-ID22CtT3IT2','ID23CtT1Dec-ID23CtT1IT2','ID23CtT2Dec-ID23CtT2IT2','ID23CtT3Dec-ID23CtT3IT2',
'ID24CtT1Dec-ID24CtT1IT2','ID24CtT2Dec-ID24CtT2IT2','ID24CtT3Dec-ID24CtT3IT2','ID25CtT1Dec-ID25CtT1IT2','ID25CtT2Dec-ID25CtT2IT2','ID25CtT3Dec-ID25CtT3IT2'),
'B3' => array('ID30CtT1Dec-ID30CtT1IT2','ID30CtT2Dec-ID30CtT2IT2','ID30CtT3Dec-ID30CtT3IT2','ID31CtT1Dec-ID31CtT1IT2','ID31CtT2Dec-ID31CtT2IT2','ID31CtT3Dec-ID31CtT3IT2',
'ID32CtT1Dec-ID32CtT1IT2','ID32CtT2Dec-ID32CtT2IT2','ID32CtT3Dec-ID32CtT3IT2','ID33CtT1Dec-ID33CtT1IT2','ID33CtT2Dec-ID33CtT2IT2','ID33CtT3Dec-ID33CtT3IT2',
'ID34CtT1Dec-ID34CtT1IT2','ID34CtT2Dec-ID34CtT2IT2','ID34CtT3Dec-ID34CtT3IT2','ID35CtT1Dec-ID35CtT1IT2','ID35CtT2Dec-ID35CtT2IT2','ID35CtT3Dec-ID35CtT3IT2'),
'B4' => array('ID40CtT1Dec-ID40CtT1IT2','ID40CtT2Dec-ID40CtT2IT2','ID40CtT3Dec-ID40CtT3IT2','ID41CtT1Dec-ID41CtT1IT2','ID41CtT2Dec-ID41CtT2IT2','ID41CtT3Dec-ID41CtT3IT2',
'ID42CtT1Dec-ID42CtT1IT2','ID42CtT2Dec-ID42CtT2IT2','ID42CtT3Dec-ID42CtT3IT2','ID43CtT1Dec-ID43CtT1IT2','ID43CtT2Dec-ID43CtT2IT2','ID43CtT3Dec-ID43CtT3IT2',
'ID44CtT1Dec-ID44CtT1IT2','ID44CtT2Dec-ID44CtT2IT2','ID44CtT3Dec-ID44CtT3IT2','ID45CtT1Dec-ID45CtT1IT2','ID45CtT2Dec-ID45CtT2IT2','ID45CtT3Dec-ID45CtT3IT2'),
'B5' => array('ID50CtT1Dec-ID50CtT1IT2','ID50CtT2Dec-ID50CtT2IT2','ID50CtT3Dec-ID50CtT3IT2','ID51CtT1Dec-ID51CtT1IT2','ID51CtT2Dec-ID51CtT2IT2','ID51CtT3Dec-ID51CtT3IT2',
'ID52CtT1Dec-ID52CtT1IT2','ID52CtT2Dec-ID52CtT2IT2','ID52CtT3Dec-ID52CtT3IT2','ID53CtT1Dec-ID53CtT1IT2','ID53CtT2Dec-ID53CtT2IT2','ID53CtT3Dec-ID53CtT3IT2',
'ID54CtT1Dec-ID54CtT1IT2','ID54CtT2Dec-ID54CtT2IT2','ID54CtT3Dec-ID54CtT3IT2','ID55CtT1Dec-ID55CtT1IT2','ID55CtT2Dec-ID55CtT2IT2','ID55CtT3Dec-ID55CtT3IT2'),
'B6' => array('ID60CtT1Dec-ID60CtT1IT2','ID60CtT2Dec-ID60CtT2IT2','ID60CtT3Dec-ID60CtT3IT2','ID61CtT1Dec-ID61CtT1IT2','ID61CtT2Dec-ID61CtT2IT2','ID61CtT3Dec-ID61CtT3IT2',
'ID62CtT1Dec-ID62CtT1IT2','ID62CtT2Dec-ID62CtT2IT2','ID62CtT3Dec-ID62CtT3IT2','ID63CtT1Dec-ID63CtT1IT2','ID63CtT2Dec-ID63CtT2IT2','ID63CtT3Dec-ID63CtT3IT2',
'ID64CtT1Dec-ID64CtT1IT2','ID64CtT2Dec-ID64CtT2IT2','ID64CtT3Dec-ID64CtT3IT2','ID65CtT1Dec-ID65CtT1IT2','ID65CtT2Dec-ID65CtT2IT2','ID65CtT3Dec-ID65CtT3IT2')
);
Inhaltlich habe ich Ihre herangehensweise verstanden, umgesetzt bekomme ich sie nicht. Ich möchte ja nun die randomisierte Reihenfolge von B1-B6 in IV01 (mit 6 Werten) speichern und gleichzeitig die Reihenfolgen der Trials innerhalb B1-B6 in die IVs IV02-IV07 (mit je 18 Werten speichern) + schließlich die Reihenfolge auch mit setPageOrder setzen und auf Seite 'X' fortfahren. Hier bin ich leider bislang gescheitert.
Vielen Dank für Ihre Zeit und Hilfe!
Update:
Meine Lösung, die zwar alle Randomisierung korrekt speichert, sieht wie folgt aus. Allerdings werden beim Durchlaufen manchmal Blöcke (obwohl Reihenfolge gespeichert) nicht präsentiert. Außerdem erscheinen ab ca. der Hälfte (bei Block 3 oder 4) auf einmal alle Frageseiten eines Trials direkt untereinander auf einer Seite. Das hängt nicht systematisch mit einem Block zu sammen, sondern passiert unabhängig der Block Nummer grob nach der Hälfte. Die erste Hälfte läuft reibungslos.
$blocks = array (
'B1' => array('ID10CtT1Dec-ID10CtT1IT2','ID10CtT2Dec-ID10CtT2IT2','ID10CtT3Dec-ID10CtT3IT2','ID11CtT1Dec-ID11CtT1IT2','ID11CtT2Dec-ID11CtT2IT2','ID11CtT3Dec-ID11CtT3IT2',
'ID12CtT1Dec-ID12CtT1IT2','ID12CtT2Dec-ID12CtT2IT2','ID12CtT3Dec-ID12CtT3IT2','ID13CtT1Dec-ID13CtT1IT2','ID13CtT2Dec-ID13CtT2IT2','ID13CtT3Dec-ID13CtT3IT2',
'ID14CtT1Dec-ID14CtT1IT2','ID14CtT2Dec-ID14CtT2IT2','ID14CtT3Dec-ID14CtT3IT2','ID15CtT1Dec-ID15CtT1IT2','ID15CtT2Dec-ID15CtT2IT2','ID15CtT3Dec-ID15CtT3IT2'),
'B2' => array('ID20CtT1Dec-ID20CtT1IT2','ID20CtT2Dec-ID20CtT2IT2','ID20CtT3Dec-ID20CtT3IT2','ID21CtT1Dec-ID21CtT1IT2','ID21CtT2Dec-ID21CtT2IT2','ID21CtT3Dec-ID21CtT3IT2',
'ID22CtT1Dec-ID22CtT1IT2','ID22CtT2Dec-ID22CtT2IT2','ID22CtT3Dec-ID22CtT3IT2','ID23CtT1Dec-ID23CtT1IT2','ID23CtT2Dec-ID23CtT2IT2','ID23CtT3Dec-ID23CtT3IT2',
'ID24CtT1Dec-ID24CtT1IT2','ID24CtT2Dec-ID24CtT2IT2','ID24CtT3Dec-ID24CtT3IT2','ID25CtT1Dec-ID25CtT1IT2','ID25CtT2Dec-ID25CtT2IT2','ID25CtT3Dec-ID25CtT3IT2'),
'B3' => array('ID30CtT1Dec-ID30CtT1IT2','ID30CtT2Dec-ID30CtT2IT2','ID30CtT3Dec-ID30CtT3IT2','ID31CtT1Dec-ID31CtT1IT2','ID31CtT2Dec-ID31CtT2IT2','ID31CtT3Dec-ID31CtT3IT2',
'ID32CtT1Dec-ID32CtT1IT2','ID32CtT2Dec-ID32CtT2IT2','ID32CtT3Dec-ID32CtT3IT2','ID33CtT1Dec-ID33CtT1IT2','ID33CtT2Dec-ID33CtT2IT2','ID33CtT3Dec-ID33CtT3IT2',
'ID34CtT1Dec-ID34CtT1IT2','ID34CtT2Dec-ID34CtT2IT2','ID34CtT3Dec-ID34CtT3IT2','ID35CtT1Dec-ID35CtT1IT2','ID35CtT2Dec-ID35CtT2IT2','ID35CtT3Dec-ID35CtT3IT2'),
'B4' => array('ID40CtT1Dec-ID40CtT1IT2','ID40CtT2Dec-ID40CtT2IT2','ID40CtT3Dec-ID40CtT3IT2','ID41CtT1Dec-ID41CtT1IT2','ID41CtT2Dec-ID41CtT2IT2','ID41CtT3Dec-ID41CtT3IT2',
'ID42CtT1Dec-ID42CtT1IT2','ID42CtT2Dec-ID42CtT2IT2','ID42CtT3Dec-ID42CtT3IT2','ID43CtT1Dec-ID43CtT1IT2','ID43CtT2Dec-ID43CtT2IT2','ID43CtT3Dec-ID43CtT3IT2',
'ID44CtT1Dec-ID44CtT1IT2','ID44CtT2Dec-ID44CtT2IT2','ID44CtT3Dec-ID44CtT3IT2','ID45CtT1Dec-ID45CtT1IT2','ID45CtT2Dec-ID45CtT2IT2','ID45CtT3Dec-ID45CtT3IT2'),
'B5' => array('ID50CtT1Dec-ID50CtT1IT2','ID50CtT2Dec-ID50CtT2IT2','ID50CtT3Dec-ID50CtT3IT2','ID51CtT1Dec-ID51CtT1IT2','ID51CtT2Dec-ID51CtT2IT2','ID51CtT3Dec-ID51CtT3IT2',
'ID52CtT1Dec-ID52CtT1IT2','ID52CtT2Dec-ID52CtT2IT2','ID52CtT3Dec-ID52CtT3IT2','ID53CtT1Dec-ID53CtT1IT2','ID53CtT2Dec-ID53CtT2IT2','ID53CtT3Dec-ID53CtT3IT2',
'ID54CtT1Dec-ID54CtT1IT2','ID54CtT2Dec-ID54CtT2IT2','ID54CtT3Dec-ID54CtT3IT2','ID55CtT1Dec-ID55CtT1IT2','ID55CtT2Dec-ID55CtT2IT2','ID55CtT3Dec-ID55CtT3IT2'),
'B6' => array('ID60CtT1Dec-ID60CtT1IT2','ID60CtT2Dec-ID60CtT2IT2','ID60CtT3Dec-ID60CtT3IT2','ID61CtT1Dec-ID61CtT1IT2','ID61CtT2Dec-ID61CtT2IT2','ID61CtT3Dec-ID61CtT3IT2',
'ID62CtT1Dec-ID62CtT1IT2','ID62CtT2Dec-ID62CtT2IT2','ID62CtT3Dec-ID62CtT3IT2','ID63CtT1Dec-ID63CtT1IT2','ID63CtT2Dec-ID63CtT2IT2','ID63CtT3Dec-ID63CtT3IT2',
'ID64CtT1Dec-ID64CtT1IT2','ID64CtT2Dec-ID64CtT2IT2','ID64CtT3Dec-ID64CtT3IT2','ID65CtT1Dec-ID65CtT1IT2','ID65CtT2Dec-ID65CtT2IT2','ID65CtT3Dec-ID65CtT3IT2')
);
// Den ersten Block aus dem Array $blocks herausnehmen, etc.
$B1 = array_shift($blocks);
$B2 = array_shift($blocks);
$B3 = array_shift($blocks);
$B4 = array_shift($blocks);
$B5 = array_shift($blocks);
$B6 = array_shift($blocks);
//Hier Trials innerhalb der Blöcke
$key1 = array_keys($B1);
shuffle($key1);
$order1 = array();
for ($i=0; $i<count($key1); $i++) {
// Kennung der internen Variable aus Frage-Kennung plus Index erstellen
$id1 = id('IV02', $i + 1);
// Hier den Wert aus dem Array speichern
put($id1, $key1[$i]);
$order1[$i] = $B1[$key1[$i]];
}
$key2 = array_keys($B2);
shuffle($key2);
$order2 = array();
for ($i=0; $i<count($key2); $i++) {
// Kennung der internen Variable aus Frage-Kennung plus Index erstellen
$id2 = id('IV03', $i + 1);
// Hier den Wert aus dem Array speichern
put($id2, $key2[$i]);
$order2[$i] = $B2[$key2[$i]];
}
$key3 = array_keys($B3);
shuffle($key3);
$order3 = array();
for ($i=0; $i<count($key3); $i++) {
// Kennung der internen Variable aus Frage-Kennung plus Index erstellen
$id3 = id('IV04', $i + 1);
// Hier den Wert aus dem Array speichern
put($id3, $key3[$i]);
$order3[$i] = $B3[$key3[$i]];
}
$key4 = array_keys($B4);
shuffle($key4);
$order4 = array();
for ($i=0; $i<count($key4); $i++) {
// Kennung der internen Variable aus Frage-Kennung plus Index erstellen
$id4 = id('IV05', $i + 1);
// Hier den Wert aus dem Array speichern
put($id4, $key4[$i]);
$order4[$i] = $B4[$key4[$i]];
}
$key5 = array_keys($B5);
shuffle($key5);
$order5 = array();
for ($i=0; $i<count($key5); $i++) {
// Kennung der internen Variable aus Frage-Kennung plus Index erstellen
$id5 = id('IV06', $i + 1);
// Hier den Wert aus dem Array speichern
put($id5, $key5[$i]);
$order5[$i] = $B5[$key5[$i]];
}
$key6 = array_keys($B6);
shuffle($key6);
$order6 = array();
for ($i=0; $i<count($key6); $i++) {
// Kennung der internen Variable aus Frage-Kennung plus Index erstellen
$id6 = id('IV07', $i + 1);
// Hier den Wert aus dem Array speichern
put($id6, $key6[$i]);
$order6[$i] = $B6[$key6[$i]];
}
//Hier die Blöcke
$blocks_order = array (
$order1,
$order2,
$order3,
$order4,
$order5,
$order6
);
$rand = array_keys($blocks_order);
shuffle($rand);
$rotation = [];
for ($i=0; $i<count($rand); $i++) {
$id0 = id('IV01', $i + 1);
// Hier den Wert aus dem Array speichern
put($id0, $rand[$i]);
$rotation[$i] = $blocks_order[$rand[$i]];
}
setPageOrder($rotation[0], $rotation[1], $rotation[2], $rotation[3], $rotation[4], $rotation[5], 'FFMQ' );