Есть ли функция PHP для преобразования строки запроса в массив?

В основном я ищу противоположность http_build_query() .

У меня есть строка в виде строки:

 foo=bar&bar[var]=foo 

И я хочу следующее (перейти в http_build_query ):

 array( 'foo' => 'bar', 'bar' => array( 'var' => 'foo', ) ) 

Вы хотите parse_str() . Передайте ему массив как 2-й параметр, и он будет извлекать переменные из строки запроса, которую вы передаете в массив:

 <?php $str = "first=value&arr[]=foo+bar&arr[]=baz"; parse_str($str, $output); echo $output['first']; // value echo $output['arr'][0]; // foo bar echo $output['arr'][1]; // baz 

Обратите внимание, что это самая первая связанная функция, указанная на странице http_build_query .