我试图将数组编码为json,但循环不能正常工作

时间:2017-03-26 05:37:35

标签: php arrays json loops

我想要一个数组为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。请帮忙。

1 个答案:

答案 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'];}