[英]how to serialize array as url queryString in php?
我需要转换一个这样的数组:
$arr = array(1, 2, 3) ;
这种格式:
arr[0]=1&arr[1]=2&arr[2]=3
在PHP中有任何内置函数或我必须创建这个我的自我?
预期输出应该在输入数据数组中需要键名,见下文及之后使用http_build_query()
函数创建查询字符串
<?php
$arr = array("arr" => array(1, 2, 3)) ;
echo http_build_query($arr);
?>
编码输出默认值
ARR%5B0%5D = 1&ARR%5B1%5D = 2&ARR%5B2%5D = 3
如果你需要解码输出那么
<?php
$arr = array("arr" => array(1, 2, 3)) ;
echo urldecode(http_build_query($arr));
?>
ARR [0] = 1&ARR [1] = 2&ARR [2] = 3
您可以使用http_build_query,但几乎没有调整:
<?php
$arr = array(1, 2, 3);
$arr = http_build_query($arr,"arr[");
echo preg_replace('/\[\d/', '\\0]', $arr);
输出:
arr[0]=1&arr[1]=2&arr[2]=3
这是演示
或者,您也可以使用:
<?php
$arr = array(1, 2, 3);
foreach ($arr as $key => $value) {
$serialized[] = "arr[$key]=$value";
}
echo implode("&",$serialized);
正如@ Bob0t在评论中提到的,他说它更快:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.