PHP:从字符串到数组:argument =>参数

时间:2012-10-03 10:20:09

标签: php arrays

我有类似的字符串:

name="n e" content="12" icon="favicon.ico"

将这种数组解析为最佳和最快捷的方法是什么:

Array
(
    [name] => "n e"
    [content] => "12"
    [icon] => "favicon.ico"
)

1 个答案:

答案 0 :(得分:3)

这应该这样做,使用preg_match_all()获取所有组并array_combine()形成最终数组:

if (preg_match_all('/(\w+)="([^"]*)"/', $str, $matches)) {
    return array_combine($matches[1], $matches[2]);
} else {
    return array();
}

修改

当双引号之间有空格时,此替代方案会中断;否则它也有效:

parse_str(str_replace(array(' ', '"'), array('&', ''), $s), $a);
return $a;