如何修复PHP JSON编码,实现嵌套数组格式输出?
修复JSON编码代码的方案
你的问题出在将数据库返回的每一行字段值平铺成了一维数组,而目标是让每一行对应一个子数组,最终形成二维数组结构。
修改后的代码
foreach ($list->result_array() as $row) { // 直接将当前行的所有值作为子数组加入$data,而非逐个添加单个值 $data[] = array_values($row); } $output = array( "data" => $data, ); echo json_encode($output);
代码说明
- 移除了内层foreach循环:
$row本身是当前数据库行的关联数组,array_values($row)可提取该行所有值,生成一个索引子数组 - 每次循环将这个子数组存入
$data,最终$data会是二维数组,每个元素对应一行数据
正确的目标JSON结构(修正你示例中的语法问题)
{"data":[["X1.1",2,2,2,3,1,4],["X1.2",1,1,1,1,2,3],["X1.3",2,3,1,2,2,5],["X1.4",2,2,2,3,5,6]]}
你给出的目标输出缺少最外层数组包裹,标准JSON要求data的值是包含多个子数组的数组,需用[[...], [...]]格式。
内容的提问来源于stack exchange,提问作者Xerror
相关产品推荐
相关产品推荐

