在PHP中将字符串id = 1& type = 2转换为数组的最快方法?

时间:2010-01-14 03:11:27

标签: php string

我需要将其更改为:

$arr['id']=1;

$arr['type']=2;

5 个答案:

答案 0 :(得分:7)

使用:parse_str()

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

解析str,好像它是通过URL传递的查询字符串,并在当前范围中设置变量。

示例:

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

    parse_str($str, $output);
    echo $output['first'];  // value
    echo $output['arr'][0]; // foo bar
    echo $output['arr'][1]; // baz

?>

答案 1 :(得分:3)

假设您要解析查询字符串,只需使用parse_str()

$input = 'id=1&type=2';
$out = array();
parse_str($input, $out);
print_r($out);

输出:

Array
(
    [id] => 1
    [type] => 2
)

您可以选择不传入第二个参数,而parse_str()会将变量注入当前范围。 不要在全局范围内执行此操作。我可能会争辩说根本不这样做。出于同样的原因register_globals()是坏的。

答案 2 :(得分:2)

请参阅parse_str

答案 3 :(得分:1)

$arr = array();
$values = explode("&",$string);
foreach ($values as $value)
{
  array_push($arr,explode("=",$value));
}

答案 4 :(得分:0)

parse_str()与第二个参数一起使用,如下所示:

$str = 'id=1&type=2';

parse_str($str, $arr);
然后

$arr将包含:

Array
(
    [id] => 1
    [type] => 2
)