树状数据展现很常用,今天学习了PHP的递归,也来总结总结!
PHP代码:
function _getTreeList_custom1($data,$parent_id,$depth)
{
$return_array = array();
if(is_array($data) && !empty($data))
{
foreach($data as $key => $info)
{
if($info['parent_id'] == $parent_id)
{
$info['depth'] = $depth;
$temp_info = $info;
foreach($data as $s_info)
{
if($s_info['parent_id'] == $info['id'])
{
$temp_info['sub'] = _getTreeList_custom1($data, $info['id'], $depth+1);
break;
}
}
$return_array[] = $temp_info;
}
}
}
return $return_array;
}
function _getTreeList_custom2($data,$parent_id,$depth)
{
$return_array = array();
if(is_array($data) && !empty($data))
{
foreach($data as $key => $info)
{
if($info['parent_id'] == $parent_id)
{
$info['depth'] = $depth;
$temp_info = $info;
unset($data[$key]);
$sub_list = _getTreeList_custom2($data,$info['id'],$depth+1);
if(!empty($sub_list))
{
$temp_info['sub'] = $sub_list;
}
$return_array[] = $temp_info;
}
}
}
return $return_array;
}
前台显示:
function showTreeOnHtml($treeList)
{
echo '<ul>';
foreach($treeList as $key => $treeInfo)
{
echo '<li>';
echo $treeInfo['name'];
if(!empty($treeInfo['sub']))
{
showTreeOnHtml($treeInfo['sub']);
}
echo '</li>';
}
echo '<ul>';
}
showTreeOnHtml($treeList);