Extract query string into an associative array with PHP

A little while back I posted how to extract the domain, path, etc from a url with PHP and in this follow up post show how to extract the query string into an associative array using the parse_str function.

Extract the query string with parse_url

In this example we'll look at the URL from querying [chris hope] at Google (I don't show up until the second page, by the way) which looks like this:

Extract the query string parts with parse_str

The parse_str function takes one or two parameters (the second from PHP 4.0.3) and does not return any values. If the second parameter is present, the values from the query string are returned in that parameter as an associative array. If it is not present, they are instead set as variables in the current scope, which is not really ideal.

So, without the first parameter:

parse_str($parts['query']);

You could now echo the "q" value like this:

echo $q;

In my opionion, it's better to have the values returned as an array like so: