如何基于现有PHP数组生成符合指定格式的JSON接口输出
解决方案
问题原因
- 第一段代码错误将
response、brid数组、description数组拆分作为独立元素存入result字段,与目标结构的字段定义完全不符 - 第二段代码没有将业务对象集合存入单独的
values字段,而是直接追加到顶级数组,导致JSON出现多余的数字键
修正后代码
// 初始化顶级返回数组 $response = []; // 设置顶级response字段 $response['response'] = 1; // 初始化values数组存储业务数据 $values = []; // 循环拼接业务对象 for ($i = 0; $i < count($brids); $i++) { $values[] = [ 'brid' => intval($brids[$i]), 'description' => $descriptions[$i] ]; } // 将values数组加入顶级返回结构 $response['values'] = $values; // 输出JSON结果 echo json_encode($response);
输出验证
运行代码后输出的格式完全符合需求,示例如下:
{"response":1,"values":[{"brid":1,"description":"Plumber"},{"brid":2,"description":"Carpenter"},{"brid":3,"description":"Electrician"},{"brid":4,"description":"Mason"},{"brid":5,"description":"Painter"}]}
内容的提问来源于stack exchange,提问作者Kairos
相关产品推荐
相关产品推荐

