?query=strings&are=fucking&annoying=sometimes. Don’t go parsing them yourself.
PHP has it’s own parse_str function that helps. Things can get a bit messy if you’ve got a bunch of overlapping query arguments. This is common if you’ve got multiple sets of view filters on a WP_List_Table, for instance.
WordPress gives you a few utility functions for adding and removing arguments cleanly, without tampering with other arguments which might be in the query string. Use wp_parse_args(), add_query_arg() and remove_query_arg().