php树形菜单代码

数据结构:
shujujiegou

打印如下:
[code lang=”php”]
array(7) {
[0] => array(5) {
["id"] => string(1) "4"
["fzname"] => string(12) "山猫小号"
["userid"] => string(2) "12"
["pid"] => string(1) "0"
["time"] => string(10) "1413359977"
}
[1] => array(5) {
["id"] => string(1) "5"
["fzname"] => string(12) "山猫一组"
["userid"] => string(2) "12"
["pid"] => string(1) "4"
["time"] => string(10) "1413361206"
}
[2] => array(5) {
["id"] => string(1) "6"
["fzname"] => string(12) "山猫二组"
["userid"] => string(2) "12"
["pid"] => string(1) "4"
["time"] => string(10) "1413361225"
}
[3] => array(5) {
["id"] => string(1) "7"
["fzname"] => string(15) "山猫一组子"
["userid"] => string(2) "12"
["pid"] => string(1) "5"
["time"] => string(10) "1413361388"
}
[4] => array(5) {
["id"] => string(1) "8"
["fzname"] => string(15) "山猫一组子"
["userid"] => string(2) "12"
["pid"] => string(1) "5"
["time"] => string(10) "1413361409"
}
[5] => array(5) {
["id"] => string(1) "9"
["fzname"] => string(16) "山猫一组子3"
["userid"] => string(2) "12"
["pid"] => string(1) "5"
["time"] => string(10) "1413361460"
}
[6] => array(5) {
["id"] => string(2) "10"
["fzname"] => string(15) "山猫二组子"
["userid"] => string(2) "12"
["pid"] => string(1) "6"
["time"] => string(10) "1413361506"
}
}

[/code]

结果:
jieguo

打印如下:

[code lang=”php”]
array(1) {
[0] => array(5) {
["id"] => string(1) "4"
["fzname"] => string(12) "山猫小号"
["userid"] => string(2) "12"
["pid"] => array(2) {
[0] => array(5) {
["id"] => string(1) "5"
["fzname"] => string(12) "山猫一组"
["userid"] => string(2) "12"
["pid"] => array(3) {
[0] => array(5) {
["id"] => string(1) "7"
["fzname"] => string(15) "山猫一组子"
["userid"] => string(2) "12"
["pid"] => string(0) ""
["time"] => string(10) "1413361388"
}
[1] => array(5) {
["id"] => string(1) "8"
["fzname"] => string(15) "山猫一组子"
["userid"] => string(2) "12"
["pid"] => string(0) ""
["time"] => string(10) "1413361409"
}
[2] => array(5) {
["id"] => string(1) "9"
["fzname"] => string(16) "山猫一组子3"
["userid"] => string(2) "12"
["pid"] => string(0) ""
["time"] => string(10) "1413361460"
}
}
["time"] => string(10) "1413361206"
}
[1] => array(5) {
["id"] => string(1) "6"
["fzname"] => string(12) "山猫二组"
["userid"] => string(2) "12"
["pid"] => array(1) {
[0] => array(5) {
["id"] => string(2) "10"
["fzname"] => string(15) "山猫二组子"
["userid"] => string(2) "12"
["pid"] => string(0) ""
["time"] => string(10) "1413361506"
}
}
["time"] => string(10) "1413361225"
}
}
["time"] => string(10) "1413359977"
}
}
[/code]

工用到两个函数1生成树形代码:

[code lang=”php”]
function getTree($data, $pId)
{
$tree = ”;
foreach($data as $k => $v)
{
if($v[‘pid’] == $pId)
{
$v[‘pid’] = $this->getTree($data, $v[‘id’]);
$tree[] = $v;
//unset($data[$k]);
}
}
return $tree;
}
[/code]

函数2转化为html代码:

[code lang=”php”]
function procHtml($tree)
{
$html = ”;
foreach($tree as $t)
{
if($t[‘pid’] == ”)
{
$html .= "<li>{$t[‘fzname’]}</li>";
}
else
{
$html .= "<li>".$t[‘fzname’];
$html .= $this->procHtml($t[‘pid’]);
$html = $html."</li>";
}
}
return $html ? ‘<ul>’.$html.'</ul>’ : $html ;
}

[/code]