0 votes
in SoSci Survey (dt.) by s255294 (295 points)

Hallo,

ich möchte gerne einen Mittelwert über mehrere spezifische Werte aus der Datenbank für Inhalte berechnen. Dabei soll der Befehl aber potenzielle fehlende Werte ignorieren.
Bisher habe ich dies mithilfe von calcMean() versucht:

$fb_inf = calcMean(array($fb[6], $fb[12], $fb[18], $fb[24], $fb[30]));

Dabei bekomme ich allerdings immer die Fehlermeldung, dass ich ein "undefined offset" benutze, wenn die Daten nicht in der Datenbank enthalten sind.
Eine Option potenzielle fehlenden Datenpunkte zu ignorieren konnte ich bisher leider noch nicht herausfinden. Können Sie mir dabei helfen?
Danke!

1 Answer

0 votes
by SoSci Survey (306k points)

"undefined offset" benutze, wenn die Daten nicht in der Datenbank enthalten sind.

Diese Meldung bezieht sich darauf, dass z.B. $fb[18] nicht existiert, es also keinen Index 18 in dem Array $fb gibt. Das Problem ist also nicht calcMean(), sondern konkret $fb[18].

PHP hat hierfür eine einfache Lösung:

$fb[18] ?? NULL

Dieser Ausdruck liefert $fb18, oder - wenn der Schlüssel nicht existiert - den Wert NULL. Diesen wiederum ignoriert calcMean() bei der Berechnung. Eine Möglichkeit wäre also folgende:

$fb_inf = calcMean(array(
    $fb[6] ?? NULL,
    $fb[12] ?? NULL,
    $fb[18] ?? NULL,
    $fb[24] ?? NULL,
    $fb[30] ?? NULL
));

SoSci Survey wird sich beim Fragebogne zusmmenstellen darüber beschweren, dass es mit ?? nichts anfangen kann. Das können Sie ignorieren.

Eine andere Option bestünde darin, per FOR-Schleife und array_key_exists() die existierenden Werte herauszusuchen.

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

...