Zunächst brauchen Sie eine Liste Ihrer Items. Dort können Sie alle Items einzeln aufschreiben oder diesen Job mittels FOR-Schleife erledigen lassen. Zweiteres (s. folgendes Beispiel) funktioniert nur, wenn Sie alle Items der Fragen mitnehmen möchten:
$questions = array('A101', 'A102', 'A103', 'A201', 'A202');
$allItems = array();
foreach ($questions as $question) {
foreach (getItems($question) as $item) {
$allItems[] = array($question, $item);
}
}
Diese List können Sie nun kräftig mischen.
shuffle($allItems);
Und dann abarbeiten.
$i = loopPage(count($allItems));
$item = $allItems[$i];
question($item[0], $item[1]);
Jetzt noch ein registerVariable() und ein isset(), damit die Rotation nicht immer neu erfolgt. Und gesamt sieht es dann aus wie folgt:
if (!isset($allItems)) {
// Eine Liste aller Items in der Form Frage-Item erstellen
$questions = array('A101', 'A102', 'A103', 'A201', 'A202');
$allItems = array();
foreach ($questions as $question) {
foreach (getItems($question) as $item) {
$allItems[] = array($question, $item);
}
}
// Mischen und die Reihenfolge merken
shuffle($allItems);
registerVariable($allItems);
}
// Items einzeln anzeigen
$i = loopPage(count($allItems));
$item = $allItems[$i];
question($item[0], $item[1]);