
本文介绍如何将 PHP 关联数组快速转换为包含 labels(键名数组)和 points(整型值数组)的 JSON 结构,适用于图表数据准备等场景。
本文介绍如何将 php 关联数组快速转换为包含 `labels`(键名数组)和 `points`(整型值数组)的 json 结构,适用于图表数据准备等场景。
在 Web 开发中,尤其是对接前端图表库(如 Chart.js、ECharts)时,常需将 PHP 后端的关联数组转化为标准的键值分离 JSON 格式,例如:
{"labels":["agre","extr","inte"],"points":[0,0,100]}该结构明确区分了横轴标签(labels)与对应数据点(points),便于前端直接绑定渲染。
实现的核心逻辑非常简洁:利用 PHP 内置函数提取键与值,并做必要类型转换:
$data = [
"agre" => "0",
"extr" => "0",
"inte" => "100",
];
$result = [
'labels' => array_keys($data), // 提取所有键名,保持原始顺序
'points' => array_map('intval', array_values($data)) // 提取值并统一转为整型
];
echo json_encode($result, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
// 输出:{"labels":["agre","extr","inte"],"points":[0,0,100]}✅ 关键说明:
立即学习“PHP免费学习笔记(深入)”;
-
array_keys()按插入顺序返回键名数组,无需额外排序; -
array_values()获取值数组后,用array_map('intval', ...)安全转为整数——相比(int)强制转换,intval()对空字符串或非数字字符串更鲁棒(返回 0),适合处理可能含空白或异常输入的场景; -
json_encode()推荐添加JSON_UNESCAPED_UNICODE(避免中文被编码为\uXXXX)和JSON_UNESCAPED_SLASHES(提升可读性),尤其在调试或 API 返回时更友好。
⚠️ 注意事项:
- 若原始值可能为浮点数(如
"99.5"),应改用floatval或filter_var($v, FILTER_VALIDATE_FLOAT)避免截断; - 如需保留原始字符串值(如
"001"→"001"),则跳过intval转换,但需确保前端能正确解析; - 数组为空时
array_keys()和array_values()均返回空数组,json_encode仍能安全输出{"labels":[],"points":[]},无需额外判空。
此方法轻量、高效、无依赖,是 PHP 中处理此类数据结构转换的标准实践。



















