Hello,
(GERMAN VERSION BELOW)
I am in need for help regarding an array/ random question generation.
I am using a random generator to select 5 out of 22 questions and each of those is supposed to be shown on a seperate page. On top of that, 4 questions (the same for each of the 5 above) should be shown on each of the 5 pages as well.
For example: I randomly select questions 1, 4, 6, 8, 21. So the 5 pages are:
(1) Q1, Q100, Q101, Q102, Q103, Q104
(2) Q4, Q100, Q101, Q102, Q103, Q104
(3) Q6, Q100, Q101, Q102, Q103, Q104
(4) Q8, Q100, Q101, Q102, Q103, Q104
(5) Q21, Q100, Q101, Q102, Q103, Q104
The code I have to far is:
#assign random generator number to a question
$sets = array(
1 =>'SF02',
2 => 'SF03',
3 => 'SF04',
4 => 'SF05',
5 => 'SF06',
6 => 'SF07',
7 => 'SF08',
8 => 'SF09',
9 => 'SF10',
10 => 'SF11',
11 => 'SF12',
12 => 'SF13',
13 => 'SF14',
14 => 'SF15',
15 => 'SF16',
16 => 'SF17',
17 => 'SF18',
18 => 'SF19',
19 => 'SF20',
20 => 'SF21',
21 => 'SF23',
22 => 'SF24'
);
#5 sets of the standard questions I always want to ask after the selected one
$questions = array(
array('QU01', 'QU02','QU03','QU04','QU06'),
array('QU10', 'QU13','QU19','QU25','QU31'),
array('QU11', 'QU14','QU20','QU26','QU32'),
array('QU12', 'QU15','QU21','QU27','QU33'),
array('QU07', 'QU16','QU22','QU28','QU34'));
$drawn = valueList('SF01');
$ids=array();
$counter=0;
#merge the selected question to a set of standard questions and merge them into one big array
foreach ($drawn as $code) {
array_splice($questions[$counter], 0, 0, $sets[$code]);
$ids = array_merge($ids, $questions[$counter]);
$counter = $counter +1;
}
registerVariable($ids);
$i = loopPage(count($ids));
show($ids[$i]);
Now the selection works, but the set I want on the same page are all shown on individual pages. Does anyone have any hints on how to show multiple questions on the same page?
Thanks a lot and let me know if anything is unclear or you need more information!
Ricarda
DEUTSCH:
Hallo,
Ich brauche Hilfe bei der Verwendung von Arrays und dem Zufallsgenerator.
Ihc nutze einen Zufallsgenerator, um 5 aus 22 Fragen auszuwählen, die ich dann auf einzelnen Seiten anzegen will. Zusätzlich sollen auf jeder der 5 Seiten noch $ weitere Fragen (immer die gleichen) mit dem jeweils gewählten Zufallsfrage angezeigt werden.
Beispiel:Der Zufallsgenerator zieht Fragen 1, 4, 6, 8, 21. Die 5 Seiten sind dann:
(1) Q1, Q100, Q101, Q102, Q103, Q104
(2) Q4, Q100, Q101, Q102, Q103, Q104
(3) Q6, Q100, Q101, Q102, Q103, Q104
(4) Q8, Q100, Q101, Q102, Q103, Q104
(5) Q21, Q100, Q101, Q102, Q103, Q104
Bisher habe ich folgenden Code:
#Zuordnung der Zufallszahlen zu Fragen
$sets = array(
1 =>'SF02',
2 => 'SF03',
3 => 'SF04',
4 => 'SF05',
5 => 'SF06',
6 => 'SF07',
7 => 'SF08',
8 => 'SF09',
9 => 'SF10',
10 => 'SF11',
11 => 'SF12',
12 => 'SF13',
13 => 'SF14',
14 => 'SF15',
15 => 'SF16',
16 => 'SF17',
17 => 'SF18',
18 => 'SF19',
19 => 'SF20',
20 => 'SF21',
21 => 'SF23',
22 => 'SF24'
);
#5 Sets der Standardfragen, die immer gezeigt werden sollen (5 verschiedene Sets, da jede Frage nur einmal gewählt werden darf -aber einfach Kopien voneinander)
$questions = array(
array('QU01', 'QU02','QU03','QU04','QU06'),
array('QU10', 'QU13','QU19','QU25','QU31'),
array('QU11', 'QU14','QU20','QU26','QU32'),
array('QU12', 'QU15','QU21','QU27','QU33'),
array('QU07', 'QU16','QU22','QU28','QU34'));
$drawn = valueList('SF01');
$ids=array();
$counter=0;
#Die Zufallsfrage mit einem Standardset mergen und in einen Array fügen
foreach ($drawn as $code) {
array_splice($questions[$counter], 0, 0, $sets[$code]);
$ids = array_merge($ids, $questions[$counter]);
$counter = $counter +1;
}
registerVariable($ids);
$i = loopPage(count($ids));
show($ids[$i]);
Die Auswahl und Zuordnung zu den Standardfragen funktioniert, aber jede Frage wird einzeln angezeigt - insgesamt also 5*5= 25 Seiten. Hat jemand eine Idee, was ich ändern muss, damit immer 5 Fragen zusammen auf einer Seite angezeigt werden?
Vielen Dank - und lasst mich gern wissen, wenn was unklar ist oder mehr Informationen benötigt werden!