Creating arguments from loop for WP_Query meta_query

How about this?

/**
 * Convert query string to meta query.
 */
function query_string_to_meta_query( $query_string ) {
    $meta_query = array( 'relation' => 'AND' );

    foreach ( wp_parse_args( $query_string ) as $key => $value ) {
        $meta_query[] = array( 'key' => $key, 'value' => $value );
    }

    return array(
        'post_type'  => array( 'post', 'custom' ),
        'meta_query' => $meta_query,
    );
}