<?php
/**
* This method is provided by @tonton
* http://my.oschina.net/u/918697
* @date 2012-12-12
*/
function GenTree5 ($items) {
foreach($items as$item)
$items [$item ['PID']]['son'] [$item ['ID']] = & $items [$item ['ID']];
returnIsset ($items [0]['son']) ? $items [0]['son']: Array ();
}
/**
* Format data into a tree structure
* @author Xuefen.tong
* @param array $items
* @return Array
*/
function GenTree9 ($items) {
$tree = Array ();//well-formatted tree
foreach($items as$item)
if(Isset ($items [$item ['PID']]))
$items [$item ['PID']]['son'[] = & $items [$item ['ID']];
Else
$tree [] = & $items [$item ['ID']];
return$tree;
}
$items = Array (
1= = Array ('ID'=1,'PID'=0,'name'='Jiangxi Province'),
2= = Array ('ID'=2,'PID'=0,'name'='Heilongjiang Province'),
3= = Array ('ID'=3,'PID'=1,'name'='Nanchang'),
4= = Array ('ID'=4,'PID'=2,'name'='Harbin City'),
5= = Array ('ID'=5,'PID'=2,'name'='Jixi'),
6= = Array ('ID'=6,'PID'=4,'name'='Xiangfang District'),
7= = Array ('ID'=7,'PID'=4,'name'='Nangang District'),
8= = Array ('ID'=8,'PID'=6,'name'='He Xing Lu'),
9= = Array ('ID'=9,'PID'=7,'name'='sai Tai Zhi Jie'),
Ten= = Array ('ID'=Ten,'PID'=8,'name'='Northeast Forestry University'),
One= = Array ('ID'= One,'PID'=9,'name'='Harbin Institute of Technology'),
A= = Array ('ID'= A,'PID'=8,'name'='Harbin Normal University'),
-= = Array ('ID'= -,'PID'=1,'name'='Ganzhou'),
-= = Array ('ID'= -,'PID'= -,'name'='Gan County'),
the= = Array ('ID'= the,'PID'= -,'name'='Yudou County'),
-= = Array ('ID'= -,'PID'= -,'name'='Mao Dian Zhen'),
-= = Array ('ID'= -,'PID'= -,'name'='Ota Township'),
-= = Array ('ID'= -,'PID'= -,'name'='Yi Yuan Cun'),
+= = Array ('ID'= +,'PID'= -,'name'='Shangba Village'),
);
Echo"<pre>";
Print_r (GenTree5 ($items));
Print_r (GenTree9 ($items));
Tree formatting of infinite categorical data