001 |
<?php |
002 |
003 |
/** |
004 |
*
此方法由@Tonton 提供 |
005 |
*
http://my.oschina.net/u/918697 |
006 |
*
@date 2012-12-12 |
007 |
*/ |
008 |
function genTree5($items)
{ |
009 |
foreach ($items as $item) |
010 |
$items[$item['pid']]['son'][$item['id']]
= &$items[$item['id']]; |
011 |
return isset($items[0]['son'])
? $items[0]['son']
: array(); |
012 |
} |
013 |
014 |
/** |
015 |
*
将数据格式化成树形结构 |
016 |
*
@author Xuefen.Tong |
017 |
*
@param array $items |
018 |
*
@return array |
019 |
*/ |
020 |
function genTree9($items)
{ |
021 |
$tree = array(); //格式化好的树 |
022 |
foreach ($items as $item) |
023 |
if (isset($items[$item['pid']])) |
024 |
$items[$item['pid']]['son'][]
= &$items[$item['id']]; |
025 |
else |
026 |
$tree[]
= &$items[$item['id']]; |
027 |
return $tree; |
028 |
} |
029 |
030 |
$items = array( |
031 |
1
=> array('id' =>
1, 'pid' =>
0, 'name' => '江西省'), |
032 |
2
=> array('id' =>
2, 'pid' =>
0, 'name' => '黑龙江省'), |
033 |
3
=> array('id' =>
3, 'pid' =>
1, 'name' => '南昌市'), |
034 |
4
=> array('id' =>
4, 'pid' =>
2, 'name' => '哈尔滨市'), |
035 |
5
=> array('id' =>
5, 'pid' =>
2, 'name' => '鸡西市'), |
036 |
6
=> array('id' =>
6, 'pid' =>
4, 'name' => '香坊区'), |
037 |
7
=> array('id' =>
7, 'pid' =>
4, 'name' => '南岗区'), |
038 |
8
=> array('id' =>
8, 'pid' =>
6, 'name' => '和兴路'), |
039 |
9
=> array('id' =>
9, 'pid' =>
7, 'name' => '西大直街'), |
040 |
10
=> array('id' =>
10, 'pid' =>
8, 'name' => '东北林业大学'), |
041 |
11
=> array('id' =>
11, 'pid' =>
9, 'name' => '哈尔滨工业大学'), |
042 |
12
=> array('id' =>
12, 'pid' =>
8, 'name' => '哈尔滨师范大学'), |
043 |
13
=> array('id' =>
13, 'pid' =>
1, 'name' => '赣州市'), |
044 |
14
=> array('id' =>
14, 'pid' =>
13, 'name' => '赣县'), |
045 |
15
=> array('id' =>
15, 'pid' =>
13, 'name' => '于都县'), |
046 |
16
=> array('id' =>
16, 'pid' =>
14, 'name' => '茅店镇'), |
047 |
17
=> array('id' =>
17, 'pid' =>
14, 'name' => '大田乡'), |
048 |
18
=> array('id' =>
18, 'pid' =>
16, 'name' => '义源村'), |
049 |
19
=> array('id' =>
19, 'pid' =>
16, 'name' => '上坝村'), |
050 |
); |
051 |
echo "<pre>"; |
052 |
print_r(genTree5($items)); |
053 |
print_r(genTree9($items)); |
054 |
055 |
//后者输出格式,前者类似,只是数组键值不一样,不过不影响数据结构 |
056 |
/* |
057 |
Array |
058 |
( |
059 |
[0]
=> Array |
060 |
( |
061 |
[id]
=> 1 |
062 |
[pid]
=> 0 |
063 |
[name]
=> 江西省 |
064 |
[son]
=> Array |
065 |
( |
066 |
[0]
=> Array |
067 |
( |
068 |
[id]
=> 3 |
069 |
[pid]
=> 1 |
070 |
[name]
=> 南昌市 |
071 |
) |
072 |
073 |
[1]
=> Array |
074 |
( |
075 |
[id]
=> 13 |
076 |
[pid]
=> 1 |
077 |
[name]
=> 赣州市 |
078 |
[son]
=> Array |
079 |
( |
080 |
[0]
=> Array |
081 |
( |
082 |
[id]
=> 14 |
083 |
[pid]
=> 13 |
084 |
[name]
=> 赣县 |
085 |
[son]
=> Array |
086 |
( |
087 |
[0]
=> Array |
088 |
( |
089 |
[id]
=> 16 |
090 |
[pid]
=> 14 |
091 |
[name]
=> 茅店镇 |
092 |
[son]
=> Array |
093 |
( |
094 |
[0]
=> Array |
095 |
( |
096 |
[id]
=> 18 |
097 |
[pid]
=> 16 |
098 |
[name]
=> 义源村 |
099 |
) |
100 |
101 |
[1]
=> Array |
102 |
( |
103 |
[id]
=> 19 |
104 |
[pid]
=> 16 |
105 |
[name]
=> 上坝村 |
106 |
) |
107 |
108 |
) |
109 |
110 |
) |
111 |
112 |
[1]
=> Array |
113 |
( |
114 |
[id]
=> 17 |
115 |
[pid]
=> 14 |
116 |
[name]
=> 大田乡 |
117 |
) |
118 |
119 |
) |
120 |
121 |
) |
122 |
123 |
[1]
=> Array |
124 |
( |
125 |
[id]
=> 15 |
126 |
[pid]
=> 13 |
127 |
[name]
=> 于都县 |
128 |
) |
129 |
130 |
) |
131 |
132 |
) |
133 |
134 |
) |
135 |
136 |
) |
137 |
138 |
[1]
=> Array |
139 |
( |
140 |
[id]
=> 2 |
141 |
[pid]
=> 0 |
142 |
[name]
=> 黑龙江省 |
143 |
[son]
=> Array |
144 |
( |
145 |
[0]
=> Array |
146 |
( |
147 |
[id]
=> 4 |
148 |
[pid]
=> 2 |
149 |
[name]
=> 哈尔滨市 |
150 |
[son]
=> Array |
151 |
( |
152 |
[0]
=> Array |
153 |
( |
154 |
[id]
=> 6 |
155 |
[pid]
=> 4 |
156 |
[name]
=> 香坊区 |
157 |
[son]
=> Array |
158 |
( |
159 |
[0]
=> Array |
160 |
( |
161 |
[id]
=> 8 |
162 |
[pid]
=> 6 |
163 |
[name]
=> 和兴路 |
164 |
[son]
=> Array |
165 |
( |
166 |
[0]
=> Array |
167 |
( |
168 |
[id]
=> 10 |
169 |
[pid]
=> 8 |
170 |
[name]
=> |
171 |
东北林业大学 |
172 |
) |
173 |
174 |
[1]
=> Array |
175 |
( |
176 |
[id]
=> 12 |
177 |
[pid]
=> 8 |
178 |
[name]
=> |
179 |
哈尔滨师范大学 |
180 |
) |
181 |
182 |
) |
183 |
184 |
) |
185 |
186 |
) |
187 |
188 |
) |
189 |
190 |
[1]
=> Array |
191 |
( |
192 |
[id]
=> 7 |
193 |
[pid]
=> 4 |
194 |
[name]
=> 南岗区 |
195 |
[son]
=> Array |
196 |
( |
197 |
[0]
=> Array |
198 |
( |
199 |
[id]
=> 9 |
200 |
[pid]
=> 7 |
201 |
[name]
=> 西大直街 |
202 |
[son]
=> Array |
203 |
( |
204 |
[0]
=> Array |
205 |
( |
206 |
[id]
=> 11 |
207 |
[pid]
=> 9 |
208 |
[name]
=> |
209 |
哈尔滨工业大学 |
210 |
) |
211 |
212 |
) |
213 |
214 |
) |
215 |
216 |
) |
217 |
218 |
) |
219 |
220 |
) |
221 |
222 |
) |
223 |
224 |
[1]
=> Array |
225 |
( |
226 |
[id]
=> 5 |
227 |
[pid]
=> 2 |
228 |
[name]
=> 鸡西市 |
229 |
) |
230 |
231 |
) |
232 |
233 |
) |
234 |
)*/ |
&spm=1001.2101.3001.5002&articleId=18140415&d=1&t=3&u=fc2928b8f7524d44b8e6e8d9f3fd26db)
1141

被折叠的 条评论
为什么被折叠?



