protected function filterWouldMatch($filterValue, $value, $key)
    {
        if ($value === null) {
            return $filterValue === null;
        }

        if (is_array($filterValue)) {
            return is_array($value) ? $filterValue == $value : in_array($value, $filterValue);
        }

        if (is_numeric($value)) {
            return $filterValue == $value;
        }

        return mb_strpos($value, $filterValue) !== false;

    }