PHP递归算法_php递归函数详解

PHP递归算法_php递归函数详解先设置数据在本地数据库,设置前要先了解pid字段的关系。如果做成菜单还需添加一个路由字段,自行定义。第一种方式先将数据提取出转换成数组。重点是Yarray方法里的递归方式。接下来进行解析方式。重点:一定要在进行递归之前声明一个静态数组,不然会导致数组覆盖。剩下的就是注释的内容也就是判断父节点与节点来判断等级。这步指来回方法调用本身进行处理递归。最后数据会变成其中关系为pid数值存在与id下的下级关系,level为处于第几级;我们来输出一下看看结.

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

先设置数据在本地数据库,设置前要先了解pid字段的关系。如果做成菜单还需添加一个路由字段,自行定义。

PHP递归算法_php递归函数详解

第一种方式

先将数据提取出转换成数组。重点是Yarray方法里的递归方式。

PHP递归算法_php递归函数详解

接下来进行解析方式。

PHP递归算法_php递归函数详解

重点:一定要在进行递归之前声明一个静态数组,不然会导致数组覆盖。剩下 的就是注释的内容也就是判断父节点与节点来判断等级。

PHP递归算法_php递归函数详解

这步指来回方法调用本身进行处理递归。

最后数据会变成

PHP递归算法_php递归函数详解

 其中关系为pid数值存在与id下的下级关系,level为处于第几级;

PHP递归算法_php递归函数详解

我们来输出一下看看结构;

PHP递归算法_php递归函数详解

 

第二种

还是从提取一个数组开始就不多叙述了;

PHP递归算法_php递归函数详解

接下来创建一个空数组;把提取出来的数据放进去;

PHP递归算法_php递归函数详解

进行第二次遍历循环,形成树状结构

PHP递归算法_php递归函数详解

 

这个方法的核心在于引用,php变量默认的传值方式是按指传递
也就是说 假如说 遍历顺序是 河北省 邯郸市 当遍历到河北省时 会把河北省放到tree中 遍历到邯郸市时 会把邯郸市放到河北省的子节点数组中 但是!!! 这会儿的tree数组中 河北省已经放进去了 根据php变量按值传递的规则 你并没有更改tree数组中的河北省的数据 所以这里用到了引用传递

看一下结果;

PHP递归算法_php递归函数详解

 如在前端使用,自己设置好foreach与if之间的嵌套;

又是学废的一天;

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/169578.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • dumpbin的命令

    dumpbin的命令1所有的命令用法:DUMPBIN[选项][文件]  选项:   /ALL   /ARCHIVEMEMBERS   /CLRHEADER   /DEPENDENTS   /DIRECTIVES   /DISASM[:{BYTES|NOBYTES}]   /ERRORREPORT:{NONE|PROMPT|QU

  • vue之解决跨域问题[通俗易懂]

    vue之解决跨域问题[通俗易懂]同源策略:http协议、主机名、端口号都要相同。因为浏览器同源策略的影响,向后端服务器请求数据的时候,不能进行访问。可以采用代理服务器的方式,代理服务器:浏览器向一个相同同源策略的g代理服务器上请求资源,因为服务器之间没有同源策略,代理服务器就去找后端服务器请求资源,在返回给浏览器解决方法一:在根目录下新建vue.config.js文件,这里是js文件哈。module.exports={ lintOnSave:false,//取消格式化 devServer:{ proxy:

  • maven详细教程_maven的安装与配置

    maven详细教程_maven的安装与配置学习maven的使用,看到一篇很实用的入门教程(菜鸟级入门)2007-08-2814:01:04标签:maven职场休闲一、前言早就知道maven在java项目的管理方面名声显赫,于是就想着学习掌握之,于是查阅了大量文档。发现这些文档的作者都是java的大腕,大多都是站在掌握了一定maven基础的角度上进行介绍,让我这初学者看的云里雾里不…

  • springboot启动后自动停止_redis启动停止重启

    springboot启动后自动停止_redis启动停止重启springboot项目启动后自动停止,也引入了jar包<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>但是启动仍然自动停止,怎么搞?在启动类上增加捕获异常并打印日志publicstaticvoidmain(Strin

  • tcpdump抓包命令_tcpdump指定ip抓包命令

    tcpdump抓包命令_tcpdump指定ip抓包命令tcpdump是一个功能强大的命令行数据包分析器,它是通过监听服务器的网卡来获取数据包,所有通过网络访问的数据包都能获取到。它也提供了过滤器的功能,可以获取指定的网络、端口或协议的数据包程序员日常排查问题,最常用的是使用过滤器功能获取指定端口的数据包,用来分析服务器是否收到请求、请求数据是否完整。参数介绍tcpdump命令的参数很多,详见如下这里只介绍一些常用的参数​-ccount//count表示数量。抓取数据包的数量达到count后结束命令,如果不使用…

  • 怎么检查计算机和打印机是否连接网络,检查电脑是否正确连接网络打印机

    怎么检查计算机和打印机是否连接网络,检查电脑是否正确连接网络打印机我们有时候会在电脑中连接网络打印机来进行打印工作。可是有用户会遇到文件无法打印的问题。那么这个时候应该怎么检查电脑中是否已成功连接网络打印机?对此,我们可以参考以下方法来进行操作。1、如果文件打印不了,按Crtl+P打开打印对话框,在打印机名称中看看有没有网络打印机的名称,如果没有则说明打印机驱动有问题,需要重新安装网络打印机的驱动程序;2、如果有显示打印机名称,那么问题有可能是网络连接错误或者打…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号