本文实例讲述了php实现递归与无限分类的方法,分享给大家供大家参考。具体实现方法如下:
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
|
<?php echo "<pre>" ; $area = array ( array ( 'id' =>1, 'area' => '北京' , 'pid' =>0), array ( 'id' =>2, 'area' => '广西' , 'pid' =>0), array ( 'id' =>3, 'area' => '广东' , 'pid' =>0), array ( 'id' =>4, 'area' => '福建' , 'pid' =>0), array ( 'id' =>11, 'area' => '朝阳区' , 'pid' =>1), array ( 'id' =>12, 'area' => '海淀区' , 'pid' =>1), array ( 'id' =>21, 'area' => '南宁市' , 'pid' =>2), array ( 'id' =>45, 'area' => '福州市' , 'pid' =>4), array ( 'id' =>113, 'area' => '亚运村' , 'pid' =>11), array ( 'id' =>115, 'area' => '奥运村' , 'pid' =>11), array ( 'id' =>234, 'area' => '武鸣县' , 'pid' =>21) ); function t( $arr , $pid =0, $lev =0){ static $list = array (); foreach ( $arr as $v ){ if ( $v [ 'pid' ]== $pid ){ echo str_repeat ( " " , $lev ). $v [ 'area' ]. "<br />" ; //这里输出,是为了看效果 $list [] = $v ; t( $arr , $v [ 'id' ], $lev +1); } } return $list ; } $list = t( $area ); echo "<hr >" ; print_r( $list ); ?> |
希望本文所述对大家的php程序设计有所帮助。