GVKun编程网logo

PHP无限极分类原理(php无限极分类原理是什么)

28

本篇文章给大家谈谈PHP无限极分类原理,以及php无限极分类原理是什么的知识点,同时本文还将给你拓展php如何实现无限极分类?无限极分类的三种实现方法(代码详解)、php实现无限级分类php无限极分类

本篇文章给大家谈谈PHP无限极分类原理,以及php无限极分类原理是什么的知识点,同时本文还将给你拓展php如何实现无限极分类?无限极分类的三种实现方法(代码详解)、php实现无限级分类 php无限极分类显示 php无限极分类下拉框 php无限极分类函、PHP无限极分类、php无限极分类_PHP教程等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

PHP无限极分类原理(php无限极分类原理是什么)

PHP无限极分类原理(php无限极分类原理是什么)

1.递归:程序调用自身的编程技巧称为递归

2.案例:

aram 递归 $[name] */ function deeploop(&$i=1){ echo $i; $i++; if($i

3.global

aram 递归 $[name] */ $i = 1; function deeploop(){ global $i; //Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件。 echo $i; $i++; if($i

4.static

aram 递归 $[name] */ function deeploop(){ static $i; echo $i; $i++; if($i

5.说白了递归就是一个循环,用循环实现和递归实现是同样的效果。

aram 递归 $[name] */ for($i=1;$i

php如何实现无限极分类?无限极分类的三种实现方法(代码详解)

php如何实现无限极分类?无限极分类的三种实现方法(代码详解)

本篇文章给大家带来的内容是介绍php如何实现无限极分类?无限极分类的三种实现方法(代码详解)。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

无限极分类1:

public function judeg($id)
{
   $rs = Db::name(''finance_class'') -> field(''parent_code'') -> where(''id'',$id) -> select();
   $i = 1;
   foreach($rs as $k => $v){
     if($v[''parent_code'']  0){
       $i += $this -> judeg($v[''parent_code'']);
      }
   }
   return $i;
}

 public function cid($id,$pid)
 {
    $w[''parent_code''] = $id;
    $rs = Db::name(''finance_class'')
       -> field(''id,code,name,parent_code'')
       -> where($w)
       -> order(''code asc'')
       -> select();
    $str = '''';
    foreach ($rs as $k => $v) {
        $name = $v[''name''];
        $_id = $v[''id''];
        $cutOff = '''';
        for($i = 0; $i  judeg($_id); $i++){
          $cutOff.=''-'';
        }
        if($_id == $pid){
          $str.=''<p>他的id=''.$_id.''====他的级别''.$cutOff.$name.''</p>'';
        }else{
          $str.=''<p>他的id=''.$_id.''====他的级别''.$cutOff.$name.''</p>'';
        }
        $str.=$this-&gt;cid($_id,$pid);
    }
    return $str;
37}
public function finance_c()
{
   $w[''type''] = ''资产类'';
   $w[''parent_code''] = 0;
   $rs = Db::name(''finance_class'')
       -&gt; field(''id,code,name,parent_code'')
       -&gt; where($w)
        -&gt; select();
   $str = '''';
   foreach ($rs as $k =&gt; $v){
     $str.= ''<p>一级name:''.$v[''name''].''</p><p><span>立即学习</span>“<a href="https://pan.quark.cn/s/7fc7563c4182"rel="nofollow" target="_blank">PHP免费学习笔记(深入)</a>”;</p>'';
     $str.=    $this -&gt; cid($v[''id''],0);
   }
   echo $str;
}
登录后复制

这个方法出来的效率慢,而且很绕。

方法2:

public function getVoucherClass()
{
    $lists = Db::name(&#39;finance_class&#39;)->select();

    $lists = $this->getTree($lists);

    foreach($lists as $value){
      echo str_repeat(&#39;--&#39;, $value[&#39;level&#39;]), $value[&#39;name&#39;].&#39;<br />&#39;;
    }
10}

/**
* 递归实现无限极分类
* @param $array 分类数据
* @param $pid 父ID
* @param $level
* @return $list 
*/
function getTree($array, $pid =0, $level = 0){
   static $list = [];
   foreach ($array as $key => $value){
     if ($value[&#39;parent_code&#39;] == $pid){
        $value[&#39;level&#39;] = $level;
         $list[] = $value;
         unset($array[$key]);
         $this->getTree($array, $value[&#39;id&#39;],$level+1);
      }
   }
   return $list;
30}
登录后复制

无限极分类3:

 public function index()
    {
       $lists = \think\Db::table(&#39;ozyx_finance_class&#39;)->select();
       $lists = $this->getTree($lists,0);

       foreach ($lists as $k => $v) {
               $lists_one[$v[&#39;type&#39;]][]=$v;
       }

       // halt($lists_one);
       $this->assign(&#39;lists&#39;, $lists_one);

       return view();
    }

    /**
    * 无限极分类
    */
    function getTree($data, $pid)
    {
        $tree = &#39;&#39;;
        foreach($data as $k => $v)
        {
          if($v[&#39;parent_code&#39;] == $pid)
          {        
               $v[&#39;parent_code&#39;] = $this->getTree($data, $v[&#39;id&#39;]);
               $tree[] = $v;
                  unset($data[$k]);
          }
        }
        return $tree;
    }
登录后复制

数据表结构:

以上就是php如何实现无限极分类?无限极分类的三种实现方法(代码详解)的详细内容,更多请关注php中文网其它相关文章!

php实现无限级分类 php无限极分类显示 php无限极分类下拉框 php无限极分类函

php实现无限级分类 php无限极分类显示 php无限极分类下拉框 php无限极分类函

如果自己写一个系统,经常会用到栏目管理

栏目分类多等级多就需要实现无限级分类了,代码如下

一、下拉菜单中的使用

/*  无限级分类
 *
 *	逻辑递推获取类型
 *	hid 上级栏目id
 *	step 下级栏目前缀
 *	tid seleted选项id
 */
 
function LogicGetTypeList($datatable=''lanmu_class'',$hid=0,$step='''',$tid=-1)
{
	
	static $TypeList='''';
	$query = "SELECT * FROM `$datatable` WHERE heid=$hid ORDER BY px ASC";
	$arrs=mysql_query($query);
	while($row=@mysql_fetch_assoc($arrs)){
		echo $step;
		$TypeList .= ("<option value="''&quot;.$row[''id''].&quot;''" .="($tid" :>".$step.$row[''class'']."</option>\r\n");  //分类名称
		LogicGetTypeList($datatable,$row[''id''],$step.''--'',$tid);
	}
	return $TypeList;
}
登录后复制
二、栏目管理

代码大概如下,需要根据具体情况进行修改

<?php treeList("",0);
function treeList($tag,$classid){
$result=mysql_query("select * from lanmu_class where heid=&#39;".$classid."&#39; order by px asc");
while($row=mysql_fetch_array($result)){

/*栏目功能*/
$sqlG=@mysql_fetch_assoc(mysql_query("select * from ht_gn where id=&#39;".$row[&#39;gongn&#39;]."&#39;"));
?><trwidth="5" align="center">
<input type="checkbox" name="dell[]" value="&lt;?php echo $row[''id'']?&gt;"><td><?php echo $tag.$row[&#39;class&#39;];?></td>
<td><?php echo $sqlG[&#39;gn_title&#39;];?></td>
<td align="center">
<?php echo $row[&#39;template&#39;];?> </td>
<td align="center">
<input type="text" value="&lt;?php echo $row[" px>" size="3"  echo $row[''id''];?&gt;,this.value)" /&gt; </td>    
<td>
【<a href="lanmu_add.php?id=&lt;?php%20echo%20%24row%5B''id''%5D;?&gt;">编辑</a>】  【<a href="#" echo>''}"&gt;删除</a>】
  【<a href="../car/car_pic.php?s_id=&lt;?php%20echo%20%24row%5B''id''%5D;?&gt;">图片集</a>】
</td> 
</tr><?php treeList($tag."─┴─",$row[&#39;id&#39;]);?><?php }
}
 ?>
登录后复制

以上就介绍了php实现无限级分类,包括了php,无限级方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

PHP无限极分类

PHP无限极分类

<?php

$items = array(

    1 => array(''id'' => 1, ''pid'' => 0, ''name'' => ''安徽省''),

    2 => array(''id'' => 2, ''pid'' => 0, ''name'' => ''浙江省''),

    3 => array(''id'' => 3, ''pid'' => 1, ''name'' => ''合肥市''),

    4 => array(''id'' => 4, ''pid'' => 3, ''name'' => ''长丰县''),

    5 => array(''id'' => 5, ''pid'' => 1, ''name'' => ''安庆市''),

);

function generateTree($items){

    foreach($items as $item)

        $items[$item[''pid'']][''son''][$item[''id'']] = &$items[$item[''id'']];

    return isset($items[0][''son'']) ? $items[0][''son''] : array();

}

print_r(generateTree($items));

php无限极分类_PHP教程

php无限极分类_PHP教程

php无限极分类

php无限极分类是经常要用到的,本人以前一直用的是已经写好的,所以没仔细去研究过,今天由于项目的需要,需要临时做一个php无限极分类的东东,遂做了一个最简单的,现记录如下,有需要的朋友可以看下。

数据表结构

CREATE TABLE IF NOT EXISTS `category` (
  `id` int(5) NOT NULL AUTO_INCREMENT COMMENT ''唯一自增id'',
  `pid` int(5) NOT NULL DEFAULT ''0'' COMMENT ''父id'',
  `sort` int(2) NOT NULL DEFAULT ''0'' COMMENT ''排序数字'',
  `name` varchar(30) DEFAULT NULL COMMENT ''名称'',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COMMENT=''无限极分类表'' AUTO_INCREMENT=1 ;
登录后复制

数据

INSERT INTO `category` (`id`, `pid`, `sort`, `name`) VALUES
(1, 0, 1, ''php''),
(2, 0, 2, ''数据库''),
(3, 0, 3, ''javascript''),
(4, 1, 1, ''框架模板''),
(5, 1, 2, ''函数总结''),
(6, 2, 1, ''mysql''),
(7, 4, 1, ''框架''),
(8, 4, 2, ''模板''),
(9, 8, 1, ''smarty''),
(10, 7, 2, ''thinkphp''),
(11, 10, 1, ''thinkphp技巧''),
(12, 10, 2, ''thinkphp模板''),
(13, 12, 3, ''模板知识总结''),
(14, 12, 2, ''模板视频教程''),
(15, 11, 1, ''model技巧'');
登录后复制

函数实现代码

function tree(&amp;$list,$pid=0,$level=0,$html=''--''){
    static $tree=array();
    foreach($list as $v){
        if($v[''pid'']==$pid){
            $v[''level'']=$level;
            $v[''html'']=str_repeat($html,$level);
            $tree[]=$v;
            tree($list,$v[''id''],$level+1,$html);
        } 
    }
    return $tree;
}
登录后复制

以上tree函数的第一个参数$list就是获取的如上表的一个二维数组的结果集。需要注意的是从数据库获取结果集的sql语句必须加上order by sort asc,否则sort字段将不能发挥排序的作用

立即学习“PHP免费学习笔记(深入)”;

您可能感兴趣的文章

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1058849.htmlTechArticlephp无限极分类 php无限极分类是经常要用到的,本人以前一直用的是已经写好的,所以没仔细去研究过,今天由于项目的需要,需要临时做一...

关于PHP无限极分类原理php无限极分类原理是什么的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于php如何实现无限极分类?无限极分类的三种实现方法(代码详解)、php实现无限级分类 php无限极分类显示 php无限极分类下拉框 php无限极分类函、PHP无限极分类、php无限极分类_PHP教程的相关知识,请在本站寻找。

本文标签:

上一篇PHP 无限极分类下拉列表实现(php无限极分类的方法)

下一篇php 对象转数组(php对象转数组)