"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.