public static function ListToTree($list, $primaryKey='id', $parentKey = 'up_id', $childStr = 'children', $root = 0)
{
$tree = array();
if (is_array($list)) {
//创建基于主键的数组引用
$refer = array();
foreach ($list as $key => $data) {
$refer[$data[$primaryKey]] = &$list[$key];
}
foreach ($list as $key => $data) {
//判断是否存在parent
$parantId = $data[$parentKey];
if ($root == $parantId) {
$tree[] = &$list[$key];
} else {
if (isset($refer[$parantId])) {
$parent = &$refer[$parantId];
$parent[$childStr][] = &$list[$key];
}
}
}
}
return $tree;
}