求解决,用php语言遍历数据库生成以下结构的 json 数据,[
{
"text":"服务",
"children":
[
{"text":"苏州","id":"1"},
{"text":"北京","id":"2"}
]
},
{
"text":"传单",
"children":
[
{"text":"上海","id":"3"},
{"text":"广东","id":"4"}
]
}
]

解决方案 »

  1.   

    服务、传单是数据库中某表类一的数据,城市是类二中的数据,比如类一$text1=my_select("select * from cn_pmenu where classid=0 limit 0,2");
    foreach ($text1 as $row1){    $json[] = array(
    "text" => $row1["name"],
            "children" => array(
            array("text" => "苏州","id" => "1",),
            array("text" => "北京","id" => "2",)
            )
        );
    }请按这个接着解决类二遍历的问题
      

  2.   

    foreach ($text1 as $row1){
        $json[] = array(
            "text" => $row1["name"],
            "children" => my_select("select * from xx where 关联ID={$row1['id']}")
        );
    }
      

  3.   

    我直接给你复制我代码了,懒得改了,你自己改成你要的吧
    $category是一个三维数组,map和foreach一样,你自己看着改吧
    $list = $category->map(function ($item) {
                $er =$item->children->map(function ($res){
                    $san =$res->children->map(function ($san){
                        return  [
                            'cate_id' => $san->cate_id,
                            'text' => $san->cate_name,
                            'children'  =>''
                        ];
                    });                return  [
                        'cate_id' => $res->cate_id,
                        'text' => $res->cate_name,
                        'children'  =>$san
                    ];
                });
                $data =   [
                    'cate_id' => $item->cate_id,
                    'text' => $item->cate_name,
                    'children'  =>$er
                ];
                return $data;
            })->toJson(JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
      

  4.   

    有三步 查询数据库->组装数据->转json
    前两步没问题吧
    最后一步,你想原生Php写,不借助框架还是有难度的,尤其多层递归数组。
    网上有专门递归转json的函数。
      

  5.   

    这还看不懂吗,就是一个遍历套遍历啊,第一层只遍历一级的数据,第二层遍历第二级的数据,并且把第二级的数据赋值给第一级,第三级同理,遍历赋值给第二级,然后json_encode()就行啊,如果级数比较多的话,建议封装下,使用递归方法,和无线分类类似。