0
点赞
收藏
分享

微信扫一扫

递归算法

kiliwalk 2022-06-13 阅读 46

我只是在这里记录一下,只是给我自己看而已,大家就不必纠结了“

算法一:

/**
* 将栏目按照等级关系排序,用level来区分
* @param $data 数据源
* @param int $id
* @param int $level 等级
* @return array
*/
function setSort($data,$id=0,$level=0)
{
static $arr = array();

foreach ($data as $k => $v)
{
if ($v['pid'] == $id)
{
$v['level'] = $level+1;
$arr[] = $v;
setSort($data,$v['id'],$level);
}
}

return $arr;
}

算法二:

/**
* 将栏目按照等级关系排序,子栏目归类到顶级栏目的children下面
* @param $data 数据源
* @param int $id
* @return array
*/
function setSortChildren($data,$id=0)
{
$arr = array();

foreach ($data as $k => &$v)
{
if ($v['pid'] == $id)
{
$v['children'] = setSortChildren($data,$v['id']);
$arr[] = $v;
}
}

return $arr;
}

算法二前:

递归算法_数据源

算法二后:

递归算法_数据源_02

 


举报

相关推荐

0 条评论