php怎么将JSON数组转换为字符串

PHPz
发布: 2023-04-20 13:49:21
原创
1006人浏览过

在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的最后两个字符删除(即删除最后一个逗号和与其相邻的空格),并添加花括号和换行符,返回最终字符串。

阿里云-虚拟数字人
阿里云-虚拟数字人

阿里云-虚拟数字人是什么? ...

阿里云-虚拟数字人 2
查看详情 阿里云-虚拟数字人

下面是一个例子,演示如何使用上述函数将含有多维数组的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在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号