php - 三级分类显示输出怎样实现?
習慣沉默
習慣沉默 2017-05-17 09:55:55
0
4
892
雷雷
習慣沉默
習慣沉默

全部回复(4)
左手右手慢动作

先查询pid为0的,遍历这些pid为0的,查询pid为这些item的id的,然后循环输出

洪涛

如果是oracle,可以用level(),sys_connect_by_path()函数实现
不使用函数的话,可以建视图实现。

迷茫

这一参考我这个方法,使用递推来遍历,只要是处理数据结构的都有方法的,只在于效率的高低

static public function toLevel($cate, $delimiter = '|——', $parent_id = 0, $level = 0) {

    $arr = array();
    foreach ($cate as $v) {
        if ($v['parent_id'] == $parent_id) {
            $v['type'] = $level + 1;
            $v['delimiter'] = str_repeat($delimiter, $level);
            $arr[] = $v;
            $arr = array_merge($arr, self::toLevel($cate, $delimiter, $v['cate_id'], $v['type']));
        }
    }

    return $arr;

}
phpcn_u1582

查询好数据使用函数调取,第一个完美支持你的需求,第二个是数据递归存放

$arr = [
    0=>['id'=>1,'pid'=>0,'title'=>'标题名称一'],
    1=>['id'=>2,'pid'=>0,'title'=>'标题名称一'],
    2=>['id'=>3,'pid'=>1,'title'=>'标题名称一'],
     3=>['id'=>4,'pid'=>1,'title'=>'标题名称一'],
    4=>['id'=>5,'pid'=>2,'title'=>'标题名称一'],
    5=>['id'=>6,'pid'=>2,'title'=>'标题名称一'],
    6=>['id'=>7,'pid'=>3,'title'=>'标题名称一'],
    7=>['id'=>8,'pid'=>3,'title'=>'标题名称一'],
    8=>['id'=>9,'pid'=>6,'title'=>'标题名称一'],
    9=>['id'=>10,'pid'=>6,'title'=>'标题名称一'],
    10=>['id'=>11,'pid'=>2,'title'=>'标题名称一'],
];
$result = foreachd($arr,0);var_dump($result);
function foreachd($arr,$pid,$showpage = '') {
    $setpage = 1;
    $result = array();
    foreach($arr as $key=>$val) {
        if($val['pid'] == $pid) {
            $setshowpage = $showpage == '' ? $setpage : $showpage.'.'.$setpage;
            $arr[$key]['page'] = $setshowpage;
            $setpage++;
            $setarray = ['page'=>$setshowpage,'title'=>$val['title']];
            $result[] = $setarray;
            $result = array_merge($result,foreachd($arr,$val['id'],$setshowpage));
            
        }
    }
    return $result;
}
/*function foreachd($arr,$pid) {
    $return = array();
    foreach($arr as $val) {
        if($val['pid'] == $pid) {
            $return[$val['id']]['title'] = $val['title'];
            $childrendata = foreachd($arr,$val['id']);
            if($childrendata) {
                $return[$val['id']]['children'] = $childrendata;
            }
            
        }
    }
    return $return;
}*/
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板