protected static function &_flat(&$target, &$data, $key = '')
    {
        foreach ($data as $k => $d) {
            if (is_array($d)) {
                self::_flat($target, $d, $key.'.'.$k);
            } else {
                $target[ltrim($key.'.'.$k, '.')] = $d;
            }
        }

        return $target;
    }