Bash Distinct
distinct() {
    local -n _a="$1"
    local -A _seen
    local _v
    for _v in "${_a[@]}"; do _seen[$_v]=1; done
    echo "${#_seen[@]}"
}

This counts unique values by tracking what has already been seen.