php多维数组转json只需调用json_encode()函数,支持任意嵌套结构;含中文时需加json_unescaped_unicode参数避免unicode转义;转换失败应检查nan、循环引用等并用json_last_error_msg()调试;api输出需设置header('content-type: application/json; charset=utf-8')。

PHP多维数组转JSON非常简单,直接用内置函数 json_encode() 就行,它原生支持任意深度的关联数组、索引数组甚至混合嵌套结构。
基础写法:一行搞定
只要数组里不含资源(resource)、闭包(Closure)或不可序列化的对象,默认调用 json_encode($array) 即可:
- // 示例多维数组
- $data = [
- 'user' => [
- 'id' => 123,
- 'name' => '张三',
- 'tags' => ['php', 'web', 'json']
- ],
- 'status' => true
- ];
- // 转成 JSON 字符串
- $json = json_encode($data);
- // 输出:{"user":{"id":123,"name":"张三","tags":["php","web","json"]},"status":true}
中文不乱码?加个参数
如果数组含中文,默认输出的是 Unicode 转义(如 "\u4f60\u597d"),想显示原始中文,加上 JSON_UNESCAPED_UNICODE 标志:
详细的 Three.js 3D 图形参考,涵盖场景设置、相机、几何体、材质、光照、动画、控制器、加载器、数学工具和调试。
- $json = json_encode($data, JSON_UNESCAPED_UNICODE);
- // 输出:{"user":{"id":123,"name":"张三","tags":["php","web","json"]},"status":true}
调试失败?记得检查错误
不是所有数组都能成功转 JSON。常见问题包括:含 NaN、Infinity、循环引用、非 UTF-8 字符串、对象没实现 JsonSerializable 接口等。建议加错误处理:
- $json = json_encode($data, JSON_UNESCAPED_UNICODE);
- if ($json === false) {
- // 查看具体错误原因
- echo json_last_error_msg(); // PHP 5.5+
- // 或用 json_last_error() 获取错误码
- }
输出到浏览器?别忘了设 Header
如果用于 API 接口返回,建议显式设置 Content-Type:
- header('Content-Type: application/json; charset=utf-8');
- echo json_encode($data, JSON_UNESCAPED_UNICODE);
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










