tp6无限极分类的查询

举报
陈业贵 发表于 2022/05/24 23:07:49 2022/05/24
【摘要】 $cats = Db::name('cat')->select()->toArray(); $cats = tree($cats); 12 function tree($data,$...
$cats = Db::name('cat')->select()->toArray();
		$cats = tree($cats);

  
 
  • 1
  • 2

在这里插入图片描述

function tree($data,$pid=0,$level=0){

		static $arr = [];
		foreach($data as $k=>$v){
			if($v['pid']==$pid){
				$v['cat_name'] = str_repeat('|----',$level).$v['cat_name'];
				$arr[] = $v;
				unset($data[$k]);
				tree($data,$v['id'],$level+1);
			}
		}
		return $arr;
		
	}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

递归就是先查找顶级分类,然后通过递归查找其顶级分类下的子类。
如果有第二个顶级分类的话,他会先unset( d a t a [ data[ data[k])先删除已经遍历过的,就能得到第二个顶级分类

-- phpMyAdmin SQL Dump
-- version 4.8.5
-- https://www.phpmyadmin.net/
--
-- 主机: localhost
-- 生成日期: 2022-05-23 18:02:43
-- 服务器版本: 5.7.26
-- PHP 版本: 7.3.4

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- 数据库: `kkk`
--

-- --------------------------------------------------------

--
-- 表的结构 `cat`
--

CREATE TABLE `cat` (
  `id` int(10) UNSIGNED NOT NULL,
  `pid` int(10) UNSIGNED NOT NULL,
  `cat_name` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
  `cat_img` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
  `is_show` tinyint(4) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

--
-- 转存表中的数据 `cat`
--

INSERT INTO `cat` (`id`, `pid`, `cat_name`, `cat_img`, `is_show`) VALUES
(1, 0, '手机', '/storage/category/bc\\91231321a92a7a6a6db99fa7db8f37.png', 1),
(7, 0, '厨具', '/storage/category/01\\c7232eb931fa3dd40f8b4946bd27fa.jpg', 1),
(8, 7, '电饭锅', '/storage/category/2b\\edd18255c4efcfc4a9982ce33671be.jpg', 1),
(9, 0, '服装', '/storage/category/f6\\655e2bed6b7bea027fb69a3c11a27c.jpg', 1),
(10, 9, '女装', '/storage/category/84\\f9e13fa3a6093990bf3de4e2da74a0.jpg', 1),
(11, 1, '华为', '/storage/category/b4\\a403d9874ed426bd5210a2f42c33f0.jpg', 1);

--
-- 转储表的索引
--

--
-- 表的索引 `cat`
--
ALTER TABLE `cat`
  ADD PRIMARY KEY (`id`);

--
-- 在导出的表使用AUTO_INCREMENT
--

--
-- 使用表AUTO_INCREMENT `cat`
--
ALTER TABLE `cat`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12;
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74

文章来源: blog.csdn.net,作者:贵哥的编程之路(热爱分享),版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_37805832/article/details/124932037

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。