鍍金池/ 問答/PHP/ php求助將一,二級(jí)分類查詢結(jié)果拼成想要的json格式

php求助將一,二級(jí)分類查詢結(jié)果拼成想要的json格式

數(shù)據(jù)庫的字段有

id    parentid    categoryname
1        0          一級(jí)分類1
2        0          一級(jí)分類2
3        0          一級(jí)分類3
4        0          一級(jí)分類4
5        1          二級(jí)分類1-1
6        1          二級(jí)分類1-2
7        2          二級(jí)分類2-1
8        2          二級(jí)分類2-2
9        3          二級(jí)分類3-1
10       4          二級(jí)分類4-1
……………………

以上,id即數(shù)據(jù)的id,parentid為父級(jí)的id即所屬的一級(jí)分類,categoryname為分類名稱
想拼成以下的格式

[
    {
      "id": 1,                     // id值
      "disabled": false,           // 默認(rèn)false
      "groupName": "一級(jí)分類名稱",   // 一級(jí)分類名稱
      "groupId": 1,                //一級(jí)分類id
      "selected": false,           // 默認(rèn)false
      "name": "二級(jí)分類名稱"        // 二級(jí)分類名稱
    },
    {
      "id": 1,
      "disabled": false,
      "groupName": "一級(jí)分類名稱",
      "groupId": 1,
      "selected": false,
      "name": "二級(jí)分類名稱"
    }
    // more ...
]

主要是那個(gè)groupName不知道啊怎么弄最簡潔……,十分感謝

回答
編輯回答
刮刮樂

不是特別明白 你想要的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;
2018年8月31日 04:42
編輯回答
萌面人

$arr = [

['id'=>1,'parentid'=>0,'categoryname'=>'一級(jí)分類1'],
['id'=>2,'parentid'=>0,'categoryname'=>'一級(jí)分類2'],
['id'=>3,'parentid'=>0,'categoryname'=>'一級(jí)分類3'],
['id'=>4,'parentid'=>0,'categoryname'=>'一級(jí)分類4'],
['id'=>5,'parentid'=>1,'categoryname'=>'一級(jí)分類1-1'],
['id'=>6,'parentid'=>1,'categoryname'=>'一級(jí)分類1-2'],
['id'=>7,'parentid'=>2,'categoryname'=>'一級(jí)分類2-1'],
['id'=>8,'parentid'=>2,'categoryname'=>'一級(jí)分類2-2'],
['id'=>9,'parentid'=>3,'categoryname'=>'一級(jí)分類3-1'],
['id'=>10,'parentid'=>4,'categoryname'=>'一級(jí)分類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'];

}

}

2018年5月13日 11:57