Folgendes Problem: es gibt zwei verschiedene Blöcke "Selbst" und "Fremd". Die Inhalte dieser Blöcke sollen randomisiert wiedergegeben werden (abgesehen vom ersten Array-Inhalt, in dem die Instruktion steht) und die Blöcke unter einander sollen auch vertauscht werden. Soweit ähnelt der Code sehr der Anleitung "Zufällige Abfolge II", aber zusätzlich brauchen wir etwas mehr Kontrolle welche Reihenfolge am Ende gespeichert wird, da abhängig vom Zufallsgenerator (RC01) noch Veränderungen in den Instruktionen nötig sind. Leider scheinen aber die Shuffle-Befehle innerhalb der Blöcke "Fremd" / "Selbst" nicht zu klappen. Irgendeine winzige Kleinigkeit fehlt, aber ich finde nicht heraus welche ...
// Erst einmal die Seitenkennungen als Array speichern
$rotationfremd = array('InstF', 'FI01-FI07', 'FP01-FP10');
$rotationselbst = array('InstS', 'SI01-SI07', 'SP01-SP10');
// Für Fremd-Szenarien
// Das erste Element (Instruktion) aus dem Array herausnehmen
$firstfremd = array_shift($rotationfremd);
// Restliche Inhalte des Arrays durchmischen
shuffle($rotationfremd);
// Wieder zusammenkopieren: Erste Seite Instruktion + randomisierte Reihenfolge
array_unshift($rotationfremd, $firstfremd);
registerVariable($rotationfremd);
// Für Selbst-Szenarien
// Das erste Element (Instruktion) aus dem Array herausnehmen
$firstselbst = array_shift($rotationselbst);
// Restliche Inhalte des Arrays durchmischen
shuffle($rotationselbst);
// Wieder zusammenkopieren: Erste Seite Instruktion + randomisierte Reihenfolge
array_unshift($rotationselbst, $firstselbst);
registerVariable($rotationselbst);
//Nun eine erzwungene Reihenfolge der Blöcke je nach Zufallsgenerator
if (value('RC01')==1) {
$rotation= array_merge($rotationfremd, $rotationselbst);
registerVariable($rotation);
} elseif (value('RC01')==2) {
$rotation= array_merge($rotationselbst, $rotationfremd);
registerVariable($rotation);
}
// Jetzt das Ergebnis noch als Seitenabfolge festlegen
// Weiter soll es anschließend mit Seite 'DQ' gehen
setPageOrder($rotation, 'DQ');
Falls also jemand eine Idee hätte ....