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
(
" "
,
$spac
) .
"|--"
.
$v
[
'name'
] .
"</option>"
;
getTree(
$v
[
'id'
],
$spac
);
}
}
return
$str
;
}
?>
|
效果如图
本文转自 陈小龙哈 51CTO博客,原文链接:http://blog.51cto.com/chenxiaolong/1721016