繁体   English   中英

如何在php中将数组序列化为url queryString?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM