PHP: Parse Unparse String Array

Here is a quick tip on parsing and unparsing string and array in PHP.

You can parses the string into variables by using the parse_str PHP function.

Using parse_str function

void parse_str ( string $str [, array &$arr ] )

$str = The input string.
$arr = If the second parameter arr is present, variables are stored in this variable as array elements instead.

Using single parameter


$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str, $data);
echo $first;  // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz

Using the second parameter


$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str, $data);
echo "<pre>"; print_r($data); echo "</pre>"; 

The output will be:-


Array
(
    [first] => value
    [arr] => Array
        (
            [0] => foo bar
            [1] => baz
        )

)

You can unparse any array into string using the http_build_query function. This generates a URL-encoded query string from the associative (or indexed) array provided.


$data = array('foo'=>'bar',
              'baz'=>'boom',
              'cow'=>'milk',
              'php'=>'hypertext processor');

echo http_build_query($data); // foo=bar&baz=boom&cow=milk&php=hypertext+processor
echo http_build_query($data, '', '&'); // foo=bar&baz=boom&cow=milk&php=hypertext+processor

Hope this helps. Thanks.