
本文介绍如何使用 json_encode() 将 PHP 多维数组(含字符串型数字)准确、无损地转换为标准 JSON 格式的字面量字符串,并提供类型预处理与注意事项说明。
本文介绍如何使用 json_encode() 将 php 多维数组(含字符串型数字)准确、无损地转换为标准 json 格式的字面量字符串,并提供类型预处理与注意事项说明。
在 PHP 开发中,有时需要将一个结构化的多维数组“原样”转为可读、可存储、可传输的字符串形式——即其 JSON 字面量表示(如 "[[1,45],[2,23],...]"),而非序列化或打印输出。此时,json_encode() 是最可靠、最符合语义的标准方案:它严格遵循 JSON 规范,自动处理嵌套、引号、转义及数据类型映射,生成的字符串可直接被 JavaScript、其他语言或 PHP 自身的 json_decode() 安全解析。
以下是最简实践示例:
$array = [[1, 45], [2, 23], [3, 37], [4, 51], [5, 18], [6, 32], [7, 29], [8, 45], [9, 37], [10, 50]]; $converted = json_encode($array); echo $converted; // 输出:[[1,45],[2,23],[3,37],[4,51],[5,18],[6,32],[7,29],[8,45],[9,37],[10,50]]
⚠️ 注意:若原始数组中的数字实际为字符串(如 [["1", "45"], ["2", "23"]]),json_encode() 会保留其字符串类型,生成带双引号的结果("[["1","45"],["2","23"]]")。若目标是统一转为数字字面量(不带引号),需预先转换类型:
$array = [["1", "45"], ["2", "23"], ["3", "37"], ["4", "51"]];
$converted = json_encode(
array_map(
fn($sub) => array_map(fn($v) => (int)$v, $sub),
$array
)
);
echo $converted;
// 输出:[[1,45],[2,23],[3,37],[4,51]]
✅ 推荐做法:
- 优先使用
json_encode($array, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)提升可读性与兼容性; - 避免手动拼接字符串(易出错、难维护、不安全);
- 不要使用
var_export()(输出 PHP 语法,非标准 JSON,含单引号和array()关键字); - 若需严格保留原始字符串类型(如
"007"不应变为7),则跳过类型转换,直接json_encode()即可。
最终,$converted 即为所求的字面量字符串,可安全存入数据库、写入配置文件或通过 API 返回。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











