算法探讨! up者有分!
关于无限分类!
以下是一个数组:
Array
(
[1] => Array
(
[0] => Array
(
[1] => <option value='1'>|-分类一</option>
[2] => <option value='2'>|-分类二</option>
[3] => <option value='3'>|-分类三</option>
)
)
[2] => Array
(
[1] => Array
(
[4] => <option value='4'>|--分类一子分类</option>
[5] => <option value='5'>|--分类一子分类二</option>
)
[2] => Array
(
[8] => <option value='8' selected>|--分类二子分类一</option>
[9] => <option value='9'>|--分类二子分类二</option>
)
[3] => Array
(
[10] => <option value='10'>|--三类二子分类一</option>
)
)
[3] => Array
(
[4] => Array
(
[6] => <option value='6'>|---分类一子分类的子分类</option>
)
[8] => Array
(
[11] => <option value='11'>|---二子分类二</option>
)
)
[4] => Array
(
[6] => Array
(
[7] => <option value='7'>|----分类一子分类的子分类的子分类</option>
)
)
)
数组第一级的key 为 分类的级别(几级分类)(可向下无限延伸)
数组第二级的key 为 父级分类的id (id 为0表示项级分类)
数组第三级的key 为 分类本身的id 值。
要求 将这个数组处理后按父子分类排列出来。
即: 要求得到的结果如下:
<option value='1' >|-分类一</option>
<option value='4' >|--分类一子分类</option>
<option value='6' >|---分类一子分类的子分类</option>
<option value='7' >|----分类一子分类的子分类的子分类</option>
<option value='5' >|--分类一子分类二</option>
<option value='2' >|-分类二</option>
<option value='8' >|--分类二子分类一</option>
<option value='11' >|---二子分类二</option>
<option value='9' >|--分类二子分类二</option>
<option value='3' >|-分类三</option>
<option value='10' >|--三类二子分类一</option>
注意: 数组是无限向下延伸的, 结果不能仅限在上面的四级分类中。
求最简单高效的算法。
up 者有分!^^ 不够再+^_^。