如何修改PHP生成的JSON结构,移除外层数字键使用自定义键
代码调整方案
你现有代码多嵌套了一层子数组,才会生成带数字外层索引的JSON结构,直接将$row[0]作为$data的顶层键即可,调整后代码如下:
foreach($rows as $row) { $data[$row[0]] = [ "name" => $row[1], "value" => $row[2], "conso" => $row[3], "ml" => $row[4] ]; } $data = json_encode($data);
改动说明
- 移除了原来循环内多余的嵌套数组结构,直接把
$row[0]的值作为$data的一级键,不会再生成外层的数字索引 - 可以去掉
JSON_FORCE_OBJECT参数:调整后$data本身就是关联数组,转JSON时会自动输出对象格式,无需强制转换
注意:如果
$row[0]存在重复值,后面的行数据会覆盖前面同键名的内容,如果需要保留重复数据,可以根据业务逻辑调整键名生成规则。
内容的提问来源于stack exchange,提问作者Creatz
相关产品推荐
相关产品推荐

