Bitte wenden Sie den Filter, welcher die Frage ausblendet, auch im Completion Check an.
Das kann z.B. so aussehen:
$cPreparations = array_merge(
checkItem('A002', 'A002_01'),
checkItem('A003', 'A003_01')
);
if (value('AB01') == 3) {
$cPreparations = array_merge(
$cPreparations,
checkQst('A004', [1,2])
);
$cPreparations = array_merge(
$cPreparations,
checkItem('A006', 'A006_01'),
checkItem('A008', 'A008_01'),
);
Hier würde der Check von A004 nur mit aufgenommen, wenn AB01 den Antwortcode 3 hat. Beachten Sie bitte, dass $cPreparations hier das Array ist und nicht mehr die Zählung wie in Ihtem Code oben.
Wenn Sie ein Freund von Code-Golf sind (gleiches Ergebnis mit möglichst wenig Code-Zeilen), dann können Sie es auch wie folgt verkürzt schreiben. SoSci Survey wird einige Warnungen im Fragebogen zusammenstellen zeigen, weil die Code-Prüfung mit der ?:-Schreibweise nicht umgehen kann, die Sie aber ignorieren können:
$cPreparations = (count(array_merge(
checkItem('A002', 'A002_01'),
checkItem('A003', 'A003_01'),
((value('AB01') == 3) ? checkQst('A004', [1,2]) : []),
checkItem('A006', 'A006_01'),
checkItem('A008', 'A008_01'),
))