Danke für die Übermittlung der Debug-Informationen.
Wie Sie sehen, ist die Liste der Seiten deutlich zu kurz ... von den ganzen gezogenen Seiten wird eigentlich nur eine verwendet. Auf den zweiten Blick sah' ich dann auch den Fehler:
$pages = valueList('VN01', 'label');
Bei valueList() wird der zweite Parameter immer (!) als Variablenliste interpretiert. label
ist keine gültige Liste und liefert daher wohl keine Inhalte. Bitte ändern Sie das wie folgt:
$pages = valueList('VN01', NULL, 'label');
Weshalb sich valueList()
nicht über den unpassenden Parameter beschwert, muss ich noch klären.
Weiterhin denke ich, dass hier noch ein Fehler (1) liegt:
array_splice($pages, 0, 0, 'ST');
array_splice($pages, 1, 0, 'Soziodemografika1');
Die erste Zeile füge zu Beginn des Arrays die Seite "ST" ein. Danach fügt die zweite Zeile nach dem ersten Element (welches ja nun "ST" ist) die Seite "Soziodemografika1" ein. Ich denke, dass Sie hier u.U. nicht bedacht haben, dass jedes array_splice()
das Array bereits verändert. Vielleicht ist die folgende Schreibweise intuitiver:
$pages2 = array_merge(
['ST'],
array_slice($page, 0, 1),
['Soziodemografika1'],
array_slice($page, 1, 7),
// u.s.w.
);
Dabei wird die Liste der zufällig rotierten Seiten quasi in Stückchen geschnitten und dann zwischen den festen Seiten eingefügt.