php求助将一,二级分类查询结果拼成想要的json格式

数据库的字段有

id    parentid    categoryname
1        0          一级分类1
2        0          一级分类2
3        0          一级分类3
4        0          一级分类4
5        1          二级分类1-1
6        1          二级分类1-2
7        2          二级分类2-1
8        2          二级分类2-2
9        3          二级分类3-1
10       4          二级分类4-1
……………………

以上,id即数据的id,parentid为父级的id即所属的一级分类,categoryname为分类名称
想拼成以下的格式

[
    {
      "id": 1,                     // id值
      "disabled": false,           // 默认false
      "groupName": "一级分类名称",   // 一级分类名称
      "groupId": 1,                //一级分类id
      "selected": false,           // 默认false
      "name": "二级分类名称"        // 二级分类名称
    },
    {
      "id": 1,
      "disabled": false,
      "groupName": "一级分类名称",
      "groupId": 1,
      "selected": false,
      "name": "二级分类名称"
    }
    // more ...
]

主要是那个groupName不知道啊怎么弄最简洁……,十分感谢

阅读 2k
2 个回答

不是特别明白 你想要的json格式, 按照我理解的意思 随手写了一段,并没有测试



$res = $db->table('cate')->where('parentid =0')->select();
$array=array();
foreach ($res as $key =>$val){
    $cate = $db->table('cate')->where('parentid ='.$val['id'])->select();
    $array[$key]['id']=$cate['id'];
    $array[$key]['disabled']=false;
    $array[$key]['groupName']=$val['categoryname'];
    $array[$key]['groupId']=$val['id'];
    $array[$key]['selected']=false;
    $array[$key]['name']=$cate['categoryname'];
}
echo json_encode($array);exit;
新手上路,请多包涵

$arr = [

['id'=>1,'parentid'=>0,'categoryname'=>'一级分类1'],
['id'=>2,'parentid'=>0,'categoryname'=>'一级分类2'],
['id'=>3,'parentid'=>0,'categoryname'=>'一级分类3'],
['id'=>4,'parentid'=>0,'categoryname'=>'一级分类4'],
['id'=>5,'parentid'=>1,'categoryname'=>'一级分类1-1'],
['id'=>6,'parentid'=>1,'categoryname'=>'一级分类1-2'],
['id'=>7,'parentid'=>2,'categoryname'=>'一级分类2-1'],
['id'=>8,'parentid'=>2,'categoryname'=>'一级分类2-2'],
['id'=>9,'parentid'=>3,'categoryname'=>'一级分类3-1'],
['id'=>10,'parentid'=>4,'categoryname'=>'一级分类4-1'],

];
$a = $b = $c = [];
foreach($arr as $k=>&$v){

if($v['parentid'] === 0) {

  $a[$k]['parentid'] = $v['categoryname'];

}elseif($v['parentid'] === 1){

  $b[$k]['parentid'] = $v['categoryname'];

}else{

     $c[$k]['parentid'] = $v['categoryname'];

}

}

推荐问题