public static function geometricMean(array $numbers) { if (empty($numbers)) { return null; } $n = count($numbers); return pow(array_reduce($numbers, function ($carry, $a) { return !empty($carry) ? $carry * $a : $a; }), 1 / $n); }