json_decode($json, true)可将json字符串转为关联数组(含多维嵌套),不加true则返回对象;需检查json_last_error()确保解码成功,注意json语法合法性和键名一致性。

PHP 中用 json_decode() 就能直接把 JSON 字符串转成多维数组,关键是传 true 作为第二个参数。
基础写法:JSON 字符串 → 关联数组
默认情况下 json_decode() 返回对象,要得到数组必须显式指定:
-
json_decode($json, true):返回关联数组(含多维嵌套) -
json_decode($json)(不加true):返回 stdClass 对象,不能用[]按键访问子数组
注意 JSON 格式是否合法
如果 JSON 有语法错误(比如末尾多逗号、单引号代替双引号、中文未转义),json_decode() 会返回 null,建议加判断:
- 用
json_last_error() === JSON_ERROR_NONE检查解码是否成功 - 开发时可用
json_last_error_msg()查看具体错误信息
常见多维结构示例
比如这个 JSON:
{"users":[{"name":"张三","scores":[85,92]},{"name":"李四","scores":[78,88,95]}]}这样转:
$data = json_decode($json, true); // $data['users'] 是数组 // $data['users'][0]['name'] → "张三" // $data['users'][1]['scores'][2] → 95
编码时保持数据一致性
如果原始 JSON 是由 PHP 数组生成的,确保生成时没混用数字键和字符串键,避免解码后键名意外变化;另外,PHP 数组下标是整数时,json_decode(..., true) 仍会还原为数字索引,不影响遍历。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











