function genTree($items,$id='id',$fid='fid',$son = 'children'){ $tree = array(); //格式化的树 $tmpMap = array(); //临时扁平数据 foreach ($items as $item) { $tmpMap[$item[$id]] = $item; } foreach ($items as $item) { if (isset($tmpMap[$item[$fid]])) { $tmpMap[$item[$fid]][$son][] = &$tmpMap[$item[$id]]; } else { $tree[] = &$tmpMap[$item[$id]]; } } unset($tmpMap); return $tree; }