如何将下面的字符串转换为一个数组?
pg_id=2&parent_id=2&document&video
这就是我在寻找的数组,
array(
'pg_id' => 2,
'parent_id' => 2,
'document' => ,
'video' =>
)
如何将下面的字符串转换为一个数组?
pg_id=2&parent_id=2&document&video
这就是我在寻找的数组,
array(
'pg_id' => 2,
'parent_id' => 2,
'document' => ,
'video' =>
)
parse_str
函数,并且需要将第二个参数设置为将数据放入一个数组而不是单独的变量中。$queryString = "pg_id=2&parent_id=2&document&video";
parse_str($queryString, $queryArray);
print_r($queryArray);
?key=lorem&key=ipsum
将导致array(["key"]=>"ipsum")
。 问题是,是否有一个函数可以获得类似于array(["key"]=>array("lorem", "ipsum"))
的东西,还是我必须自己创建此函数? - MaBi?key=lorem&key=ipsum
,从技术上讲 PHP 也会将其视为只提供了 key=ipsum
。我认为重用关键字并期望保留所有关键字的结果是无效的。对于发送给 PHP 的查询字符串,有效的方法至少是 ?key[]=lorem&key[]=ipsum
。因此,你的自定义方法可能会查找任何出现多次的 &{x}=
(其中 x 出现两次及以上),并将其替换为 x[]
(将 ?
视为与 &
相同)。 - Anthony?key[]=lorem&key[]=ipsum
。但感谢您分享链接! - MaBiparse_str()
是不准确的,例如可能会显示如下内容:
Sometimes parse_str()
alone is note accurate, it could display for example:
$url = "somepage?id=123&lang=gr&size=300";
parse_str() 的返回值如下:
Array (
[somepage?id] => 123
[lang] => gr
[size] => 300
)
最好将parse_str()
与parse_url()
结合使用,方法如下:
$url = "somepage?id=123&lang=gr&size=300";
parse_str( parse_url( $url, PHP_URL_QUERY), $array );
print_r( $array );
$_SERVER['QUERY_STRING']
。 - CpILL使用parse_str()
函数。
$str = 'pg_id=2&parent_id=2&document&video';
parse_str($str, $arr);
print_r($arr);
parse_str
某些用法被弃用的内容?(但是不要包含“编辑:”,“更新:”或类似的内容——答案应该看起来像是今天写的)。 - Peter Mortensen&
如果您需要解码HTML实体,请务必使用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' =>
)
parse_str($str, &$array);
$array = parse_str($str);
&$arr
" 和 "$arr
" (&
的区别)。 - Peter Mortensenparse_str($str, $array);
而不是parse_str($str, &$array);
。此外,根据SO指南,我认为这个信息应该在那里。 - pushrbx有几种可能的方法,但对于您来说,已经有一个内置的parse_str
函数了:
$array = array();
parse_str($string, $array);
var_dump($array);
parse_str
某些用法被弃用的内容?(但是不要包含“编辑:”,“更新:”或类似的内容——答案应该看起来像是今天写的)。 - Peter Mortensen这是一行代码,用于将当前URL中的查询解析为数组:
parse_str($_SERVER['QUERY_STRING'], $query);
<?php
$str = "pg_id=2&parent_id=2&document&video";
$array = array();
parse_str($str, $array);
print_r($array);
?>
输出:
Array
(
[pg_id] => 2
[parent_id] => 2
[document] =>
[video] =>
)
但是PHP已经内置了$_GET函数,它会自动将其转换为数组。
尝试print_r($_GET)
,您将获得相同的结果。
parse_str()
,然后跟随 foreach
循环。$str="pg_id=2&parent_id=2&document&video";
parse_str($str,$my_arr);
foreach($my_arr as $key=>$value){
echo "$key => $value<br>";
}
print_r($my_arr);