国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

php - Comment réaliser une sortie d'affichage de classification à trois niveaux?
習(xí)慣沉默
習(xí)慣沉默 2017-05-17 09:55:55
0
4
952
數(shù)據(jù)庫(kù)文件xd_item:
id    pid     item         lead     ...
1       0     標(biāo)題名稱一  
2       0     標(biāo)題名稱二
3       1     中標(biāo)題名稱1-1
4       1     中標(biāo)題名稱1-2
5       2     中標(biāo)題名稱2-1
6       2     中標(biāo)題名稱2-2
8       3     小標(biāo)題名稱1-1-1
9       6     小標(biāo)題名稱2-2-1
10      6     小標(biāo)題名稱2-2-2
11      2     中標(biāo)題名稱2-3

---------------------
輸出效果:
序號(hào)     項(xiàng)目名稱
1       標(biāo)題名稱一      
1.1     中標(biāo)題名稱1-1
1.1.1   小標(biāo)題名稱1-1-1
1.2     中標(biāo)題名稱1-2
2       標(biāo)題名稱二
2.1     中標(biāo)題名稱2-1
2.2     中標(biāo)題名稱2-2
2.2.1   小標(biāo)題名稱2-2-1
2.2.2   小標(biāo)題名稱2-2-2
2.3     中標(biāo)題名稱2-3
============================
要在PHP實(shí)現(xiàn)這個(gè)輸出效果,要怎么實(shí)現(xiàn)呢? 
習(xí)慣沉默
習(xí)慣沉默

répondre à tous(4)
左手右手慢動(dòng)作

Interrogez d'abord ceux dont le pid est 0, parcourez ceux dont le pid est 0, interrogez ceux dont le pid est l'ID de ces éléments, puis affichez en boucle

洪濤

S'il s'agit d'Oracle, vous pouvez utiliser les fonctions level() et sys_connect_by_path() pour l'implémenter.
Si vous n'utilisez pas de fonctions, vous pouvez créer une vue pour l'implémenter.

迷茫

Ceci est une référence à ma méthode, qui utilise la récursion pour parcourir. Tant qu'elle traite des structures de données, il existe des méthodes, cela dépend simplement de l'efficacité

.
static public function toLevel($cate, $delimiter = '|——', $parent_id = 0, $level = 0) {

    $arr = array();
    foreach ($cate as $v) {
        if ($v['parent_id'] == $parent_id) {
            $v['type'] = $level + 1;
            $v['delimiter'] = str_repeat($delimiter, $level);
            $arr[] = $v;
            $arr = array_merge($arr, self::toLevel($cate, $delimiter, $v['cate_id'], $v['type']));
        }
    }

    return $arr;

}
phpcn_u1582

Interrogez les données à l'aide d'appels de fonction. Le premier répond parfaitement à vos besoins et le second est le stockage récursif des données

.
$arr = [
    0=>['id'=>1,'pid'=>0,'title'=>'標(biāo)題名稱一'],
    1=>['id'=>2,'pid'=>0,'title'=>'標(biāo)題名稱一'],
    2=>['id'=>3,'pid'=>1,'title'=>'標(biāo)題名稱一'],
     3=>['id'=>4,'pid'=>1,'title'=>'標(biāo)題名稱一'],
    4=>['id'=>5,'pid'=>2,'title'=>'標(biāo)題名稱一'],
    5=>['id'=>6,'pid'=>2,'title'=>'標(biāo)題名稱一'],
    6=>['id'=>7,'pid'=>3,'title'=>'標(biāo)題名稱一'],
    7=>['id'=>8,'pid'=>3,'title'=>'標(biāo)題名稱一'],
    8=>['id'=>9,'pid'=>6,'title'=>'標(biāo)題名稱一'],
    9=>['id'=>10,'pid'=>6,'title'=>'標(biāo)題名稱一'],
    10=>['id'=>11,'pid'=>2,'title'=>'標(biāo)題名稱一'],
];
$result = foreachd($arr,0);var_dump($result);
function foreachd($arr,$pid,$showpage = '') {
    $setpage = 1;
    $result = array();
    foreach($arr as $key=>$val) {
        if($val['pid'] == $pid) {
            $setshowpage = $showpage == '' ? $setpage : $showpage.'.'.$setpage;
            $arr[$key]['page'] = $setshowpage;
            $setpage++;
            $setarray = ['page'=>$setshowpage,'title'=>$val['title']];
            $result[] = $setarray;
            $result = array_merge($result,foreachd($arr,$val['id'],$setshowpage));
            
        }
    }
    return $result;
}
/*function foreachd($arr,$pid) {
    $return = array();
    foreach($arr as $val) {
        if($val['pid'] == $pid) {
            $return[$val['id']]['title'] = $val['title'];
            $childrendata = foreachd($arr,$val['id']);
            if($childrendata) {
                $return[$val['id']]['children'] = $childrendata;
            }
            
        }
    }
    return $return;
}*/
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal