从数组生成url参数


generating url parameters from array

假设我有以下数组:

$params
= array(
  'foo' => 'bar',
  'baz' => array('qux', 'qux2', 'qux3')
);

php中是否有预建函数so:

the_function($params);

输出

'foo=bar&baz[]=qux&baz[]=qux2&baz[]=qux3'

注意:我要求一个预先构建的函数,我可以自己编写函数代码。只是确保我没有对已经存在的东西进行编码。

为什么以前没有人建议这样做。http_build_query()就是您想要的。

$params = array('foo'=>'bar','baz'=>array('qux','qux2','qux3'));
echo urldecode(http_build_query($params));
// foo=bar&baz[0]=qux&baz[1]=qux2&baz[2]=qux3

您可能需要注意的几个注意事项:

  • 生成的字符串是url编码的(如有必要,请像我上面所做的那样使用urldecode()
  • 查询字符串中存在数组索引

如果需要,文档页面中的一些注释可以帮助实现后者。http://php.net/manual/en/function.http-build-query.php