PHP循环赋值问题:如何生成含多个id对象的JSON数组数据
解决PHP生成指定格式JSON数组的问题
嘿,我看出来你现在的代码问题啦——每次循环都会覆盖$data里的id值,最后只能得到单个对象,而不是你想要的数组格式。咱们调整一下代码逻辑就能搞定:
原代码的问题
你原来的代码里,$data["id"] = $price->id;这行在循环里会不断覆盖同一个键的值,最后$data只会保留最后一条price的id,所以生成的JSON里data是单个对象,而不是数组。
修改后的代码
// 先初始化$data为空数组,用来存放所有id对象 $data = []; foreach($prices as $price) { // 每次循环创建一个新的[id => 值]数组,追加到$data里 $data[] = ["id" => $price->id]; } $result["data"] = $data; // 如果需要输出JSON字符串,记得用json_encode转换 echo json_encode($result);
为什么这样改?
- 先把
$data初始化为空数组,这样它就能承载多个对象元素 - 循环里用
$data[] = ...的方式,每次把新的包含当前id的对象追加到数组末尾,而不是覆盖之前的值 - 最后
$result["data"]就会是一个包含多个{"id": xxx}对象的数组,正好符合你想要的JSON格式
内容的提问来源于stack exchange,提问作者n00b
相关产品推荐
相关产品推荐

