Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

0 votes

Hallo in die Runde,

ich versuche gerade einen PHP Code für das 'least quota-Verfahren' zu schreiben.

Folgende Herausforderung:

Die Bekanntheit der Marken werden in Frage BF09 abgefragt. Es folgen Statement-Fragen (Skala), bei denen nur Marken mit einer Bekanntheit >= 3 in Betracht gezogen werden. Da das Interview nicht zu lange dauern soll, soll der Respondent die Statement-Fragen zu maximal 3 Marken bekommen. Die Auswahl der Marken soll nach dem least quota-Verfahren geschehen, also die Marken mit den wenigsten Antworten die eine Bekanntheite >= 3 haben, sollen gezogen werden. Bei Gleichheit shuffle ....

Meine PHP Kenntnisse sind leider begrenzt. Folgende Überlegung:

//Hier ein bsp anhand 2 Marken ... Auszählung der teilgenommen Marken auf Statementfrage (BI01)

$marke1= statistic('count','BI01_01');
$marke2= statistic('count','BI01_02');

$nCount = array(
		
	1=>		$marke1	,
	2=>		$marke2
	);

$Bekanntheit = getItems('BF09', '>=', 3);

Gerade komme ich hier nicht weiter, falls das überhaupt der rixhtige Ansatz sein sollte.

Könnte ich jetzt eine Variable erstellen, die nur die Items von $Bekanntheit beinhaltet inkl. der Auszählung von statistic, diese dann aufsteigend sortieren, die ersten 3 Elemente der Liste in eine Variable ($liste) speichern, die im Anschluss question('BI01', $liste); ???

in SoSci Survey (dt.) by s083756 (325 points)

1 Answer

0 votes

Das sieht schon recht gut aus.

Was Sie jetzt noch wissen müssen: Man kann in PHP sehr gut mit Arrays arbeiten. Ich würde folgendes empfehlen: Fangen Sie mit dem Array $Bekanntheit an, welches Sie am Ende erstellen.

Für jedes dort genannte Item rufen Sie mittels statistic() die verfügbare Fallzahl ab und schreiben sie in ein Array - nur eben als Schleife:

$Bekanntheit = getItems('BF09', '>=', 3);
$nCount = array();
foreach ($Bekanntheit as $item) {
  $n = statistic('count', id('BI01', $item), 2);  // Da müssen Sie sehen, was genau Sie zählen können!
  $nCount[$item] = $n;
}

Jetzt noch mittels arsort() absteigend sortieren und mittels array_keys() die Schlüssel auslesen. Dann haben Sie eine Liste der bekannten Items, sortiert nach Fallzahlen (absteigend).

by SoSci Survey (92.5k points)
Join von 2 Arrays
...