YaLinqo\Enumerable::average PHP Method

average() public method

Syntax: average ()

Computes the average of a sequence of numeric values.

Syntax: average (selector {(v, k) ==> result})

Computes the average of a sequence of numeric values that are obtained by invoking a transform function on each element of the input sequence.

public average ( callable | null $selector = null ) : number
$selector callable | null {(v, k) ==> result} A transform function to apply to each element. Default: value.
return number The average of the sequence of values.
    public function average($selector = null)
    {
        $selector = Utils::createLambda($selector, 'v,k', Functions::$value);
        $sum = $count = 0;
        foreach ($this as $k => $v) {
            $sum += $selector($v, $k);
            $count++;
        }
        if ($count === 0) {
            throw new \UnexpectedValueException(Errors::NO_ELEMENTS);
        }
        return $sum / $count;
    }