我想要一个数组为json_encode(),但它不能用于此
foreach($sub_ids as $sub_id){
$query = "SELECT * FROM sub_main WHERE sub_main_id = ".$sub_id;
$result=mysqli_query($con, $query);
$row1= mysqli_fetch_assoc($result);
$name = (String)$sub_id;
$main["sub_heading".$sub_id]=$row1['sub_main_heading'];
$main["sub_content".$sub_id]=$row1['sub_main_content'];
$main["sub_images".$sub_id]=$row1['sub_main_images'];
$main["sub_id".$sub_id]=$row1['sub_main_ids'];}
echo json_encode($main);
Sub_ids为1 2 3
print_r($sub_ids);
显示
Array ( [0] => 1 [1] => 2 [2] => 3 )
但是当我删除$ sub_id时它正在工作,最终会覆盖之前的循环值。
基本上json_encode正在工作 $ main ['sub_heading']但不是$ main ['sub_heading'。#sub_id]
它会创建一个数组,但不会将其编码为json。请帮忙。
答案 0 :(得分:0)
我将假设$sub_id
是一个对象。因此,您转换为$name=(String) $sub_id
中的字符串。然后,您的解决方案是$main["sub_heading".$sub_id]
更改为$main["sub_heading".$name]
,所有内容都应该是黄金
$main["sub_heading".$name]=$row1['sub_main_heading'];
$main["sub_content".$name]=$row1['sub_main_content'];
$main["sub_images".$name]=$row1['sub_main_images'];
$main["sub_id".$name]=$row1['sub_main_ids'];}