首页 > 其他分享 >tp6 递归函数使用

tp6 递归函数使用

时间:2024-05-11 19:20:31浏览次数:16  
标签:return classInfo 递归函数 lastClass tp6 findLastClass 使用 id islast

public function findLastClass($id)
{
$classInfo = Db::name('class')->where('id', $id)->find();
if ($classInfo && $classInfo['islast'] == 1) {
// 如果当前记录的islast为1,直接返回
return $classInfo;
} elseif ($classInfo) {
// 否则,递归查找子类
$subClasses = Db::name('class')->where('pid', $id)->select();
foreach ($subClasses as $subClass) {
$lastClass = $this->findLastClass($subClass['id']); // 递归调用
if ($lastClass) {
// 如果在子类中找到了islast为1的记录,返回它
return $lastClass;
}
}
}

// 如果没有找到islast为1的记录,返回null
return null;
}

// 使用示例
$id = /* 您的初始ID */;
$newsclass = $this->findLastClass($id);
dump($newsclass);

标签:return,classInfo,递归函数,lastClass,tp6,findLastClass,使用,id,islast
From: https://www.cnblogs.com/fuxp/p/18187064

相关文章

  • Bionet_WIFI使用指南
    Bionet_WIFI使用指南适用对象:文宣楼A406课题组成员A406房间包含两个独立的路由器,分别有1000Mb的带宽。其SSID(名字)如下:使用的时候,应选择排名比较靠前的WIFI使用,越靠前来说信号越好,速度越快。获取本机的真实MAC地址路由器开启了连接管控,可以找谭然、或者我来执行绑定和连接。......
  • JAVA开发使用@JsonFormat注解,日期比实际日期少一天问题
    前言最近同事反馈一个问题,说是日期保存后未发生变化。刚开始以为是字段未对应或者是未保存成功,当我去进行排查的时候发现,发现数据保存没有问题。奇了怪了。问题现象库里日期数据保存正确,但是后台返回前台页面发现不正确。排查过程刚开始怀疑是数据未保存成功,经过测试发现数据......
  • mysql使用group by查询报错SELECT list is not in GROUP BY clause and contains nona
    官方解释:ONLY_FULL_GROUP_BY是MySQL数据库提供的一个sql_mode,通过这个sql_mode来保证,SQL语句“分组求最值”合法性的检查.这种模式采用了与Oracle、DB2等数据库的处理方式。即不允许selecttargetlist中出现语义不明确的列.对于用到GROUPBY的select语句,查出......
  • 使用Git bash切换Gitee、GitHub多个Git账号
    使用Gitbash切换Gitee、GitHub多个Git账号​ Git是分布式代码管理工具,使用命令行的方式提交commit、revert回滚代码。这里介绍使用Gitbash软件来切换Gitee、GitHub账号。​ 假设在gitee.com上的邮箱是[email protected]、用户名为alice;在github上的邮箱是[email protected]、......
  • C# 使用QuestPDF各种报错,System.IO.FileNotFoundException:“未能加载文件或程序集,Dll
    最近要做一个生成pdf报告的小功能,搜索一番之后,选择了QuestPDF这个库由于我是要在netframework4.8中实现功能,可能使用场景太老了,导致使用过程一波三折,非常的坎坷,折腾了一下午,增长了一些经验,记录下来1,如果你要在netframework4.8框架中使用,就不要自作聪明的用netstandard2.0框架......
  • MDT 的 Bootstrap.ini 中设置随机计算机名称,你可以使用预定义的 Task Sequence 变量和
    MDT的Bootstrap.ini中设置随机计算机名称,你可以使用预定义的TaskSequence变量和自定义脚本来实现。以下是一个示例:创建PowerShell脚本:powershellCopyCodefunctionGenerate-RandomComputerName{$prefix="PC"#可以是你希望的计算机名称前缀$rand......
  • 西门子博途软件安装及使用
    西门子博途软件安装及使用一、博途软件的简介博途软件可以对西门子300、400、1200及1500产品进行组态、编程和调试。TIA博途软件是一个系统,里面包含有多种软件,可以满足用户在不同自动化控制系统中的各种需求。因此,博途软件要求的电脑配置较高,且安装文件较大,但安装过程还算比较......
  • 使用c#强大的表达式树实现对象的深克隆
    一、表达式树的基本概念表达式树是一个以树状结构表示的表达式,其中每个节点都代表表达式的一部分。例如,一个算术表达式a+b可以被表示为一个树,其中根节点是加法运算符,它的两个子节点分别是a和b。在LINQ(语言集成查询)中,表达式树使得能够将C#中的查询转换成其他形式的查询,......
  • 使用Arrays.asList()的坑
    背景在将数组转为list的时候,一般会使用到Arrays.asList()这个方法,但是在对转化后的list进行add操作的时候出现了java.lang.UnsupportedOperationException的报错原因Arrays.asList()方法只是将数组转换为一个固定长度的列表,它不支持增删操作。研究源码发现,它生成的ArrayLis......
  • 线程安全队列(使用互斥锁进行实现)
    线程安全队列(使用互斥锁进行实现)没有设置队列上限的线程安全队列只需要采取一个std::condition_variable变量,用于处理队列为空的情况以下是示例代码,涉及了std::mutex和std::condition_variable、std::unique_lock、std::lockguard等多线程交互的类。测试方式采取的是3个生成者......