PHP中是否存在用于从分隔字符串创建关联数组的函数?如果没有,那么最有效的方法是什么?我正在查看PayPal的新NVP API,其中请求和响应具有以下格式:
method=blah&name=joe&id=joeuser&age=33&stuff=junk
我可以使用explode()
将每个对赋予一个数组值,但如果我可以执行某种类似dictionary_explode
的函数并指示键值分隔符并返回它会更好一个关联数组,如:
Array {
[method] => blah
[name] => joe
[id] => joeuser
[age] => 33
[stuff] => junk
}
我的CS朋友告诉我,这个想法存在于其他语言中,比如Python,所以我想知道我是不是没有为PHP找到这样的东西。现在我正在做一个array_walk,但我更喜欢更多预先构建的东西。
答案 0 :(得分:12)
PHP有一个内置函数:parse_str()
<?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 ?>
注意:我的建议是不使用第一个表单(parse_str($str)
),原因相同register_globals
不好。第二种形式(parse_str($str, $arr)
)始终是首选。