php无限极分类实现方法分析


Posted in PHP onJuly 04, 2019

本文实例讲述了php无限极分类实现方法。分享给大家供大家参考,具体如下:

今天给大家带来的是php的无限极分类技术,本人把无限极分类划分为两种。

首先我把数据库表给大家看看,数据库是tasks,数据库表也是tasks

php无限极分类实现方法分析

第一种方法(数组法)

这种方法其实是先把所有的数据查询出来,重点在于生成的二维数组

<?php
  //分类方法
  function make_list($parent,$deep = 0){
    global $tasks;//申明全局变量
    global $strArr;//申明全局变量
    $qianzhui = str_repeat(" ",$deep)."|--";
    foreach ($parent as $key => $value) {
      $strArr[] = $qianzhui.$value;
      if(isset($tasks[$key])){
        make_list($tasks[$key],++$deep);//递归调用函数
      }
    }
  }
  //数据库连接
  $dbc = mysqli_connect("localhost","root","1234","tasks");
  //拼接sql语句
  $q = "select task_id,parent_id,task from tasks where date_completed = '0000-00-00:00:00:00' order by parent_id,date_added asc";
  //执行sql
  $r = mysqli_query($dbc,$q);
  //遍历结果集
  while (list($task_id,$parent_id,$task) = mysqli_fetch_array($r,MYSQLI_NUM)) {
    //组成数组(一级键为parent_id,二级键为task_id,值为任务内容)
    $tasks[$parent_id][$task_id] = $task;
  }
  //打印数组
  echo "<pre>";
  print_r($tasks);
  echo "</pre>";
  make_list($tasks[0]);
  echo "<pre>";
  //打印缩进数组
  print_r($strArr);
  echo "</pre>";
?>

php无限极分类实现方法分析

运行结果图

第二种方法(查表法)

这种方法其实是在一开始只查询出parent_id=0的所有任务,然后采用递归的方式,动态生成查询条件,然后把每条记录的task_id又作为task_id,这样又进行新一轮的查询,知道查询结果为空。

<?php
  function findArr($where = "parent_id = 0",$deep = 0){
    $dbc = mysqli_connect("localhost","root","1234","tasks");
    global $strArr;
    $q = "select task_id,parent_id,task from tasks where ".$where." order by parent_id,date_added asc";
    $r = mysqli_query($dbc,$q);
    $qianzhui = str_repeat(" ", $deep)."|--";
    while (list($task_id,$parent_id,$task) = mysqli_fetch_array($r,MYSQLI_NUM)) {
      $strArr[] = $qianzhui.$task;
      //拼接查询条件
      $where = "parent_id = ".$task_id;
      //递归查询
      findArr($where,++$deep);
    }
  }
  findArr();
  //打印缩进数组
  echo "<pre>";
  print_r($strArr);
  echo "</pre>";
?>

php无限极分类实现方法分析

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP实现文件安全下载
Oct 09 PHP
利用static实现表格的颜色隔行显示的代码
Sep 02 PHP
PHP Ajax中文乱码问题解决方法
Feb 27 PHP
PHP 5.3新特性命名空间规则解析及高级功能
Mar 11 PHP
PHP 第二节 数据类型之转换
Apr 28 PHP
PHP读取大文件的类SplFileObject使用介绍
Apr 09 PHP
基于PHP的简单采集数据入库程序
Jul 30 PHP
php操作xml入门之xml基本介绍及xml标签元素
Jan 23 PHP
既简单又安全的PHP验证码 附调用方法
Jun 02 PHP
php简单中奖算法(实例)
Aug 15 PHP
thinkphp3.2同时连接两个数据库的简单方法
Aug 13 PHP
PHP实现rar解压读取扩展包小结
Jun 03 PHP
php常用日期时间函数实例小结
Jul 04 #PHP
JS操作XML中DTD介绍及使用方法分析
Jul 04 #PHP
PHP操作XML中XPath的应用示例
Jul 04 #PHP
PHP实现财务审核通过后返现金额到客户的功能
Jul 04 #PHP
PHP使用DOM对XML解析处理操作示例
Jul 04 #PHP
PHP创建XML接口示例
Jul 04 #PHP
ThinkPHP框架结合Ajax实现用户名校验功能示例
Jul 03 #PHP
You might like
PHP Pear 安装及使用
2009/03/19 PHP
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
2013/07/03 PHP
Session的工作机制详解和安全性问题(PHP实例讲解)
2014/04/10 PHP
php购物车实现方法
2015/01/03 PHP
PHP实现生成唯一会员卡号
2015/08/24 PHP
php发送短信验证码完成注册功能
2015/11/24 PHP
[原创]php简单隔行变色功能实现代码
2016/07/09 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
2019/10/11 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
JQuery的Alert消息框插件使用介绍
2010/10/09 Javascript
从零开始学习jQuery (四) jQuery中操作元素的属性与样式
2011/02/23 Javascript
浅析JavaScript中的隐式类型转换
2013/12/05 Javascript
使用Raygun对Node.js应用进行错误处理的方法
2015/06/23 Javascript
JQuery.validate在ie8下不支持的快速解决方法
2016/05/18 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
2017/01/05 Javascript
对Vue2 自定义全局指令Vue.directive和指令的生命周期介绍
2018/08/30 Javascript
JS实现根据详细地址获取经纬度功能示例
2019/04/16 Javascript
python 从远程服务器下载日志文件的程序
2013/02/10 Python
Python实现按中文排序的方法示例
2018/04/25 Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
2018/10/09 Python
Python字典循环添加一键多值的用法实例
2019/01/20 Python
如何基于Python实现数字类型转换
2020/02/07 Python
python deque模块简单使用代码实例
2020/03/12 Python
Python 判断时间是否在时间区间内的实例
2020/05/16 Python
Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码
2020/05/28 Python
Python爬虫爬取ts碎片视频+验证码登录功能
2021/02/22 Python
css3 media 响应式布局的简单实例
2016/08/03 HTML / CSS
HTML5本地存储之Web Storage详解
2016/07/04 HTML / CSS
澳大利亚票务和娱乐市场领导者:Ticketmaster
2017/03/03 全球购物
阿根廷在线宠物商店:Puppis
2018/03/23 全球购物
土建专业大学生自荐信范文
2014/04/09 职场文书
小学优秀班干部事迹材料
2014/05/25 职场文书
法律系毕业生求职信
2014/05/28 职场文书
2014年个人年终总结
2015/03/09 职场文书
继承Win10缺点!教你关闭Win11烦人的网络搜索
2021/11/23 数码科技