1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
$data  array ( 1 =>  array ( 'id'  => 1, 'name'  =>  'name1' , 'pid'  => 0),
             2 =>  array ( 'id'  => 2, 'name'  =>  'name2' , 'pid'  => 0),
             3 =>  array ( 'id'  => 3, 'name'  =>  'name3' , 'pid'  => 1),
             4 =>  array ( 'id'  => 4, 'name'  =>  'name4' , 'pid'  => 0),
             5 =>  array ( 'id'  => 5, 'name'  =>  'name5' , 'pid'  => 3),
             6 =>  array ( 'id'  => 6, 'name'  =>  'name6' , 'pid'  => 3),
     );
  $str  = getTree(0);
$str  "<select name='term'>"  $str  "</select>" ;
echo  $str ;
function  getTree( $id , $spac =0)
{
     $data  array ( 1 =>  array ( 'id'  => 1, 'name'  =>  'name1' , 'pid'  => 0),
             2 =>  array ( 'id'  => 2, 'name'  =>  'name2' , 'pid'  => 0),
             3 =>  array ( 'id'  => 3, 'name'  =>  'name3' , 'pid'  => 1),
             4 =>  array ( 'id'  => 4, 'name'  =>  'name4' , 'pid'  => 0),
             5 =>  array ( 'id'  => 5, 'name'  =>  'name5' , 'pid'  => 3),
             6 =>  array ( 'id'  => 6, 'name'  =>  'name6' , 'pid'  => 3),
     );
     $spac  $spac  + 2;
     static  $str ;
     
     foreach  ( $data  as  $k  =>  $v ) {
         if  ( $v [ 'pid' ] ==  $id ) {
             $arr [] =  $v ;
             $str  .=  "<option value='"  $v ['id '] . "' >" .  str_repeat ( "&nbsp;" , $spac ) .  "|--"  $v [ 'name' ] .  "</option>" ;
             getTree( $v [ 'id' ], $spac );
 
         }
 
     }
     
     return  $str ;
}
 
 
 
?>

效果如图


wKioL1ZnkyywYIcCAAAc5ZmWr-A733.png

本文转自  陈小龙哈   51CTO博客,原文链接:http://blog.51cto.com/chenxiaolong/1721016