本文阐述了php中无限极点分类的实现方法。分享给大家参考,如下:
今天给大家带来php的无限极分类技术。我把无限极点分类分为两种。
首先,让我给你看一下数据库表。数据库是任务,数据库表也是任务
第一种方法(数组方法)
其实这个方法是先查询所有的数据,重点是生成的二维数组
?Php //分类方法函数make _ list ($ parent,$ deep=0){ global $ tasks;//声明全局变量global $ strArr//声明全局变量$朱倩=str _ repeat(',$ deep)。' |-';foreach($ parent as $ key=$ value){ $ StrArr[]=$ qianzhui。$ valueif(isset($ tasks[$ key]){ make _ list($ tasks[$ key],$ deep);//递归调用函数} } }//数据库连接$ DBC=MySQL _ connect(' localhost ',' root ',' 1234 ',' tasks ');//Join sql语句$ q='从任务中选择task _ id,parent _ id,task,其中date _ completed=' 0000-00-00:0000 '按parent _ id,date _ added ASC排序';//执行SQL $ r=MySQL _ query($ DBC,$ q);//遍历结果集while (list ($ task_id,$ parent_id,$ task)=MySQL _ fetch _ array($ r,MySQL _ num)){//形成数组(主键为parent_id,次键为task_id,值为task内容)$ tasks }//打印数组echo ' preprint _ r($ tasks);回声'/pre ';make _ list($ tasks[0]);回声“pre”;//打印缩进数组print _ r($ strArr);回声'/pre ';
操作结果图
第二种方法(查表法)
实际上,这种方法只查询开头parent_id=0的所有任务,然后动态递归生成查询条件,再将每条记录的task_id再次作为task_id,进行新一轮的查询,知道查询结果为空。
?php函数findArr($其中='parent_id=0 ',$ deep=0){ $ DBC=MySQL _ connect(' localhost ',' root ',' 1234 ',' tasks ');全球$ strArr$q='从任务中选择task_id,parent_id,tasks where '。哪里?按父项_id、日期_添加的asc '排序;$ r=MySQL _ query($ DBC,$ q);$qianzhui=str_repeat(',$deep)。'| - ';while (list($task_id,$parent_id,$ task)=MySQL _ fetch _ array($ r,MYSQLI _ NUM)){ $ StrArr[]=$ qianzhui。$ task//拼接查询条件$其中='parent_id='。$ task _ id//递归查询Findar ($ where,$ deep);} } FindArr();//打印缩进数组echo ' preprint _ r($ strArr);回声'/pre ';
更多对PHP相关内容感兴趣的读者可以查看本网站专题:《PHP数据结构与算法教程》、《php程序设计算法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》、《PHP数学运算技巧总结》、0103010
希望本文对PHP编程有所帮助。