简单递归代码

admin 2019-05-21 723 阅读 0评论

/**
 * @param $arr
 * @param int $pid
 * @param string $p_id
 * @param string $id
 * @param int $level
 * @return array
 * 递归分类:返回多维数组
 */

function Get_tree($arr,$pid=0,$p_id = 'cat_pid',$id = 'cat_id',$level=0){

//初始化儿子
$child = array();
//循环所有数据找$id的儿子
foreach ($arr as $key => $v) {
//找到儿子了
if ($v[$p_id] == $pid) {
//保存下来,然后继续找儿子的儿子
$child[$v[$id]] = $v;
//显示层级数
$child[$v[$id]]['level'] = $level;
//先去掉自己,自己不可能是自己的儿孙
unset($arr[$key]);
//递归找,并把找到的儿子放到一个child的字段中
$child[$v[$id]]['son'] = $this->Get_tree($arr, $v[$id],$p_id,$id,$level+1);
}
}
return $child;

}


/**
 * @param $arr
 * @param int $pid
 * @param int $level  表示层级
 * @param string $p_id
 * @param string $id
 * @return array
 * 递归分类:返回一维数组
 */
public function tree($arr,$pid=0,$p_id = 'cat_pid',$id = 'cat_id',$level=0)
{
static $tree = array();
foreach($arr as $k=>$v){
if($v[$p_id] == $pid){
$v['level'] = $level;
$tree[] = $v;
$this->tree($arr,$v[$id],$p_id,$id,$level+1);
}
}
return $tree;
}

发表评论

快捷回复: 表情:
aoman baiyan bishi bizui cahan ciya dabing daku deyi doge fadai fanu fendou ganga guzhang haixiu hanxiao zuohengheng zhuakuang zhouma zhemo zhayanjian zaijian yun youhengheng yiwen yinxian xu xieyanxiao xiaoku xiaojiujie xia wunai wozuimei weixiao weiqu tuosai tu touxiao tiaopi shui se saorao qiudale qinqin qiaoda piezui penxue nanguo liulei liuhan lenghan leiben kun kuaikule ku koubi kelian keai jingya jingxi jingkong jie huaixiao haqian aini OK qiang quantou shengli woshou gouyin baoquan aixin bangbangtang xiaoyanger xigua hexie pijiu lanqiu juhua hecai haobang caidao baojin chi dan kulou shuai shouqiang yangtuo youling
提交
评论列表 (有 0 条评论, 723人围观)

最近发表

热门文章

最新留言

热门推荐

标签列表