我需要转换一个这样的数组:
$arr = array(1, 2, 3) ;
采用以下格式:
arr[0]=1&arr[1]=2&arr[2]=3
在php中是否有任何内置函数或者我必须自己创建这个函数?
答案 0 :(得分:3)
预期输出应该在输入数据数组中需要键名,见下文及之后使用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&安培;常用3 [1] = 2及常用3 [2] = 3
答案 1 :(得分:0)
您可以使用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
这里是demo
或者,您也可以使用:
<?php
$arr = array(1, 2, 3);
foreach ($arr as $key => $value) {
$serialized[] = "arr[$key]=$value";
}
echo implode("&",$serialized);
正如@ Bob0t在评论中提到的那样,他说它更快:)