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 Undefined index和Undefined variable的解决方法
Mar 27 PHP
php中文字母数字验证码实现代码
Apr 25 PHP
php htmlentities和htmlspecialchars 的区别
Aug 18 PHP
phpadmin如何导入导出大数据文件及php.ini参数修改
Feb 18 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
Mar 18 PHP
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
Jun 06 PHP
php简单smarty入门程序实例
Jun 11 PHP
微信公众平台开发之配置与请求
Aug 26 PHP
php 使用curl模拟登录人人(校内)网的简单实例
Jun 06 PHP
Yii2实现上下联动下拉框功能的方法
Aug 10 PHP
php表单处理操作
Nov 16 PHP
详解如何实现Laravel的服务容器的方法示例
Apr 15 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
我的论坛源代码(三)
2006/10/09 PHP
Thinkphp3.2实用篇之计算型验证码示例
2017/02/09 PHP
PHP数据分析引擎计算余弦相似度算法示例
2017/08/08 PHP
实例分析10个PHP常见安全问题
2019/07/09 PHP
JavaScript arguments 多参传值函数
2010/10/24 Javascript
Event altKey,ctrlKey,shiftKey属性解析
2013/12/18 Javascript
jQuery的几个我们必须了解的特点
2015/05/03 Javascript
javascript实现对表格元素进行排序操作
2015/11/18 Javascript
详解Bootstrap创建表单的三种格式(一)
2016/01/04 Javascript
使用AJAX实现Web页面进度条的实例分享
2016/05/06 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
AngularJS读取JSON及XML文件的方法示例
2017/05/25 Javascript
PHP自动加载autoload和命名空间的应用小结
2017/12/01 Javascript
JavaScript 跨域之POST实现方法
2018/05/07 Javascript
AngularJS中的作用域实例分析
2018/05/16 Javascript
jquery获取select选中值的文本,并赋值给另一个输入框的方法
2018/08/21 jQuery
vue使用rem实现 移动端屏幕适配
2018/09/26 Javascript
javascript设计模式 ? 职责链模式原理与用法实例分析
2020/04/16 Javascript
Vue 解决父组件跳转子路由后当前导航active样式消失问题
2020/07/21 Javascript
html5以及jQuery实现本地图片上传前的预览代码实例讲解
2021/03/01 jQuery
Python写的一个简单监控系统
2015/06/19 Python
Python检测生僻字的实现方法
2016/10/23 Python
python实现word 2007文档转换为pdf文件
2018/03/15 Python
Python获取一个用户名的组ID过程解析
2019/09/03 Python
用Python解数独的方法示例
2019/10/24 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
2020/05/16 Python
Django中template for如何使用方法
2021/01/31 Python
python matplotlib工具栏源码探析二之添加、删除内置工具项的案例
2021/02/25 Python
css3气泡 css3关键帧动画创建的动态通知气泡
2013/02/26 HTML / CSS
纯CSS3绘制打火机动画火焰效果
2016/07/18 HTML / CSS
HTML5所有标签汇总及标签意义解释
2015/03/12 HTML / CSS
意大利婴儿产品网上商店:Mukako
2018/10/14 全球购物
巴黎欧莱雅法国官网:L’Oreal Paris
2019/04/30 全球购物
汽车销售经理岗位职责
2014/06/09 职场文书
党员“四风”问题批评与自我批评思想汇报
2014/10/06 职场文书
2016党员读书思廉心得体会
2016/01/23 职场文书