您的位置:

php无限极分销系统,无限极分类php

本文目录一览:

怎么理解php中无限极

无限极分类简单点说就是一个类可以分成多个子类,然后一个子类又可以分另外多个子类这样无限分下去,就好象windows可以新建一个文件夹,然后在这个文件夹里又可以建一些个文件夹,在文件夹底下还可以建一些文件夹一样。

php 几种常用的递归 无限极分类

 /**

     * 递归实现无限极分类

     * @param $array 分类数据

     * @param $pid 父ID

     * @param $level 分类级别

     * @return $list 分好类的数组 直接遍历即可 $level可以用来遍历缩进

     */

    function getTree($array, $pid =0, $level = 0){

        //声明静态数组,避免递归调用时,多次声明导致数组覆盖

        static $list = [];        foreach ($array as $key = $value){            //第一次遍历,找到父节点为根节点的节点 也就是pid=0的节点

            if ($value['pid'] == $pid){                //父节点为根节点的节点,级别为0,也就是第一级

                $value['level'] = $level;                //把数组放到list中

                $list[] = $value;                //把这个节点从数组中移除,减少后续递归消耗

                unset($array[$key]);                //开始递归,查找父ID为该节点ID的节点,级别则为原级别+1

                getTree($array, $value['id'], $level+1);

            }

        }

thinkphp前台怎么输出无限极分类

最主要的是要掌握无限极分类的逻辑,那么写起来就很容易的多了

首先看数据库表:xp_cate

控制器: CateAction.class.php

?php

class CateAction extends Action{

function index(){

$cate=M('Cate');

$list=$cate-field("id,name,pid,path,concat(path,'-',id) as bpath")-order('bpath')-select();

foreach($list as $key=$value){

$list[$key]['count']=count(explode('-',$value['bpath']));

}

$this-assign('alist',$list);

$this-display();

}//添加栏目

function add(){

$cate=new CateModel();if($vo=$cate-create()){

if($cate-add()){

$this-success('添加栏目成功');

}else{

$this-error('添加栏目失败');

}

}else{

$this-error($cate-getError());

}

}}

?

模型:CateModel.class.php

?php

class CateModel extends Model{//对应数据库中的表xp_cate

protected $_auto=array(

array('path','tclm',3,'callback'),

);function tclm(){

$pid=isset($_POST['pid'])?(int)$_POST['pid']:0;

echo ($pid);

if($pid==0){

$data=0;

}else{

$list=$this-where("id=$pid")-find();

$data=$list['path'].'-'.$list['id'];//子类的path为父类的path加上父类的id

}

return $data;

}

}

?

模板:index.html

form action="!-URL-!/add" method="post"

请选择父级栏目:select name="pid" size="20"

option value="0"根栏目/option

volist name="alist" id="vo"

option value="{$vo['id']}"

for start="0" end="$vo['count']"

/for

{$vo['name']}

/option

/volist

/selectbr /

新的栏目名称:input type="text" name="name" /br /

input type="submit" value="添加栏目" /

/form