日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php树菜单转化为一维菜单,php树型菜单 - iturtle的个人空间 - OSCHINA - 中文开源技术交流社区...

發布時間:2025/3/15 php 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php树菜单转化为一维菜单,php树型菜单 - iturtle的个人空间 - OSCHINA - 中文开源技术交流社区... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通過處理array,添加level,is_leaf屬性實現 樹型菜單

公共類

通過處理array,添加level,is_leaf屬性實現?樹型菜單

/*樹形分類添加節點屬性

*$data,?要處理的節點數組

*$pid,父類ID

*$prefix,??字段前綴?如chh_pid

*$tree???array()

**/

function?getTree($data,?$pid,$prefix,$tree)?{

foreach($data?as?$k?=>?$v)

{

$v[$prefix.'level']?=?getLevel($data,$pid,1,$prefix);??//為每個節點計算層級

if(hashChild($data,$v[$prefix.'id'],$prefix)){//判斷每個節點是否有子節點

$v['is_leaf']?=1;

}else{

$v['is_leaf']?=0;

}

if($v[$prefix.'pid']?==?$pid)

{

if(count($tree)==0){

$tree[]?=?$v;

}else{

array_push($tree,?$v);

}

if(!empty($v[$prefix.'id']))

$tmp?=??getTree($data,?$v[$prefix.'id'],$prefix);//遞歸查找子節點

if(count($tmp)>0){

foreach?($tmp?as?$key?=>?$value)?{

array_push($tree,?$value);

}

}

}

}

return?$tree;

}

/**??判斷是否有子節點

*$data,?要處理的節點數組

*$pid,父類ID

*$prefix,??字段前綴?如chh_pid

*/

function?hashChild($data,$id,$prefix)?{

foreach($data?as?$k?=>?$v){

if($v[$prefix.'pid']?==?$id){

return?true;

}

}

return?false;

}

/**??獲取等級

*$data,?要處理的節點數組

*$pid,父類ID

*$prefix,??字段前綴?如chh_pid

*/

function?getLevel($data,$id,$level,$prefix)?{

if($level>100)??return?$level;

foreach($data?as?$k?=>?$v){

if($v[$prefix.'id']==$id){

$re?=??$v[$prefix.'pid'];

$level++;

if(!empty($v[$prefix.'pid']))

$level?=getLevel($data,$re,$level);

}

}

return?$level;

}

調用:

$lst=$Term?->field('term_id,term_name,term_pid')?->order('term_pid?asc?,term_order?asc')->?select();

$lst=?getTree($lst,0,'term_',array());

頁面處理

selected>

{$v['term_name']}

總結

以上是生活随笔為你收集整理的php树菜单转化为一维菜单,php树型菜单 - iturtle的个人空间 - OSCHINA - 中文开源技术交流社区...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。