如何用PHP生成无列名的键值对JSON文件(基于MySQL视图)
解决PHP生成指定格式JSON的问题
我懂你的需求——你要的是以partId为键、partCount为对应值的JSON对象,而不是当前输出的二维数组。问题出在你构建数组的方式上,咱们调整一下代码逻辑就能搞定:
原来的代码是把每一行数据存成一个子数组塞到结果数组里,所以json_encode后输出的是数组格式。现在咱们直接把partId作为关联数组的键,partCount作为对应的值存入数组:
$result = $conn->query($sql); $resultArray = array(); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { // 核心修改:将partId设为数组键,partCount作为对应值 $resultArray[$row["partId"]] = $row["partCount"]; }; }; echo json_encode($resultArray);
这样修改后,json_encode输出的结果就会是你想要的格式:
{"1152471600":1,"1153681200":1,"1155409200":1}
额外提一句:因为你的partId是CHAR(20)类型,即便它是数字形式的字符串,PHP的json_encode处理时会输出数字样式的键,但这在JSON语法里是合法的,最终解析后的对象键依然是字符串类型,完全符合你的需求。
内容的提问来源于stack exchange,提问作者Michael Allen Smith
相关产品推荐
相关产品推荐

