在php编程中,经常会用到json格式的数据,而将json数组转换为字符串是一个常见问题。下面我们将介绍如何在php中将json数组转换为字符串。
PHP提供了一个非常方便的函数json_encode(),可以将一个PHP数组转换为JSON格式的字符串。然而,当PHP数组中包含多维数组时,json_encode()函数就不能使我们满意了。因此,我们需要使用一个自制的函数。
下面是将JSON数组转换为字符串的函数:
function json_arr2string($arr, $indent=0){
$str = "";
$indstr = "";
for ($i=0; $i<$indent; $i++){
$indstr .= " ";
}
foreach ($arr as $key => $val){
if (is_array($val)){
$str .= $indstr . '"' . $key . '": {' . "\n" . json_arr2string($val, $indent+1) . $indstr . "},\n";
} else{
$str .= $indstr . '"' . $key . '": "' . $val . '",' . "\n";
}
}
return "{" . "\n" . substr($str, 0, -2) . "\n" . $indstr . "}";
}函数有两个参数。第一个参数$arr是要转换为字符串的JSON数组,第二个参数缺省值为0,是用来处理多维数组的。
函数首先创建一个空字符串变量$str和一个用来缩进的字符串变量$indstr,然后检查数组中的每一个元素。通过递归调用自身,处理多维数组,直到所有元素都被处理完毕为止。
立即学习“PHP免费学习笔记(深入)”;
最后,将字符串变量$str的最后两个字符删除(即删除最后一个逗号和与其相邻的空格),并添加花括号和换行符,返回最终字符串。
下面是一个例子,演示如何使用上述函数将含有多维数组的JSON数组转换为字符串:
$json_arr = array(
"name" => "PHP",
"version" => "7.3.5",
"extension" => array(
"json" => "enabled",
"curl" => "enabled",
"pdo" => "enabled"
),
"framework" => array(
"name" => "Laravel",
"version" => "5.8.18"
)
);
$json_str = json_arr2string($json_arr);
echo $json_str;以上代码将输出以下结果:
{
"name": "PHP",
"version": "7.3.5",
"extension": {
"json": "enabled",
"curl": "enabled",
"pdo": "enabled"
},
"framework": {
"name": "Laravel",
"version": "5.8.18"
}
}这是一个符合JSON格式的字符串,它将原来的JSON数组转换为了字符串。
总结:使用上述自制函数json_arr2string()可以很方便地将含有多维数组的JSON数组转换为字符串。如果您在PHP编程中没有遇到过多维数组,那么json_encode()函数已经足够使用了。
以上就是php怎么将JSON数组转换为字符串的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号