private static function recursiveGetFromKey($data, $key, $default)
    {
        if (empty($key)) {
            return $data;
        } else {
            $currentKey = array_shift($key);
            return isset($data[$currentKey]) ? self::recursiveGetFromKey($data[$currentKey], $key, $default) : $default;
        }
    }
private static function recursiveGetFromKey($data, $key, $default)
    {
        if (empty($key)) {
            return $data;
        } else {
            $currentKey = array_shift($key);
            return isset($data[$currentKey]) ? self::recursiveGetFromKey($data[$currentKey], $key, $default) : $default;
        }
    }
private static function recursiveGetFromKey ( $ data , $ key , $ default ) { if ( empty ( $ key ) ) { return $ data ; } else { $ currentKey = array_shift ( $ key ) ; return isset ( $ data [ $ currentKey ] ) ? self :: recursiveGetFromKey ( $ data [ $ currentKey ] , $ key , $ default ) : $ default ; } }
Private unsecured function for getFromKey

@param $data
@param $key
@param $default

@return mixed
Private unsecured function for getFromKey