如何将下面的字符串转换为数组?

pg_id=2&parent_id=2&document&video 

这就是我要找的数组,

array(
    'pg_id' => 2,
    'parent_id' => 2,
    'document' => ,
    'video' =>
)

当前回答

如果您在将查询字符串转换为数组时遇到问题,因为已编码的&符号

&

然后确保使用html_entity_decode

例子:

// Input string //
$input = 'pg_id=2&parent_id=2&document&video';

// Parse //
parse_str(html_entity_decode($input), $out);

// Output of $out //
array(
  'pg_id' => 2,
  'parent_id' => 2,
  'document' => ,
  'video' =>
)

其他回答

使用http://us1.php.net/parse_str

注意,它的用法是:

parse_str($str, &$array);

not

$array = parse_str($str);

请注意,以上内容仅适用于PHP 5.3及更早版本。在PHP 5.4中删除了调用时引用传递。

。使用的作用是:将字串符

$str = 'pg_id=2&parent_id=2&document&video';
parse_str($str, $arr);
print_r($arr);

如果您在将查询字符串转换为数组时遇到问题,因为已编码的&符号

&

然后确保使用html_entity_decode

例子:

// Input string //
$input = 'pg_id=2&parent_id=2&document&video';

// Parse //
parse_str(html_entity_decode($input), $out);

// Output of $out //
array(
  'pg_id' => 2,
  'parent_id' => 2,
  'document' => ,
  'video' =>
)

但是PHP已经内置了一个$_GET函数。这将把它自己转换成数组。

尝试print_r($_GET),您将得到相同的结果。

这是一个从当前URL解析查询到数组的单行程序:

parse_str($_SERVER['QUERY_STRING'], $query);