无限极分类
$arr = array( 0=>[ 'id'=>1, 'name'=>'科技', 'pid'=>0, ], 1=>[ 'id'=>2, 'name'=>'人工智能', 'pid'=>1, ], 2=>[ 'id'=>3, 'name'=>'美食', 'pid'=>0 ], 3=>[ 'id'=>4, 'name'=>'重庆小面', 'pid'=>3 ], 4=>[ 'id'=>5, 'name'=>'机器人', 'pid'=>2 ] ); public function category($arr,$pid=0,$level=0){ //定义一个静态变量,存储一个空数组,用静态变量,是因为静态变量不会被销毁,会保存之前保留的值,普通变量在函数结束时,会死亡,生长周期函数开始到函数结束,再次调用重新开始生长 //保存一个空数组 static $list=array(); //通过遍历查找是否属于顶级父类,pid=0为顶级父类, foreach($arr as $value){ //进行判断如果pid=0,那么为顶级父类,放入定义的空数组里 if($value['pid']==$pid){ //添加空格进行分层 $arr['level']=$level; $list[]=$value; //递归点,调用自身,把顶级父类的主键id作为父类进行再调用循环,空格+1 self::category($arr,$value['id'],$level+1); } } return $list;//递归出口 } $list = category($arr,0,0);
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
【开发】TensorFlow2.0新特性
上周在Sunnyvale举办的TensorFlow开发峰会上,Google发布了最新一版的TensorFlow: 2.0 Alpha版本。它较原先的1.x版本有什么改进呢?我们知道作为一个算法研究工具,tensorflow相较于同类型产品,编码是较为复杂的,需要引入额外的“搭建阶段(Construction Phase)”来创建视图,创建会话,初始化变量等等。同样是一段计算一串等比数列(1,1/2,1/4...)前50项之和,PyTorch的代码只有区区几行: 而在Tensorflow则要经历环境和执行阶段的构建工作。 结构的复杂性同时会延长前期入门人员的学习曲线及增大后期Debug的排障难度。而在TensorFlow2.0中,产品组从用户角度出发,简化了流程,不再需要建立用户会话,与Python语言更加融合,并统一了API的调用接口。 举个例子,原来我们要计算两个数乘积的平方根,需要定义视图,创建会话,设定变量。 在TensorFlow2.0中,系统省去了建立会话的麻烦。 嗯,快速执行(Eager Execution)看似简化了编码的工作,那效率怎样呢?会比通过用户会话层交互更快么?...
- 下一篇
Python科学计算结果的存储与读取
Python科学计算结果的存储与读取 Python科学计算结果的存储与读取 总结于2019年3月17日 荆楚理工学院计算机工程学院 一、前言 显然,作为一名工科僧,执行科学计算,着用Python,快忘记Matlab吧。我用了二十年的时间,熟练掌握了Matlab的用法,然后,很可能,我用6个月不到的时间,选择并实现了用Python替换Matlab。虽然来到了计算机工程学院,但是科学计算是本业,不能久,然后我突然间发现,好多时候,只用pyplot显示结果,我们的计算结果,很多时候需要存储和重复调用的哪,一个图的话,若再需要数据,下次需要,难道再发费几小时重新计算? 用Python替换Matlab的理由: (1)并行多核计算简单,效率高 之前用Matlab,并行计算需要时间几小时完成一项工作,该工作相似的计算,在Python里仅 用了2小时不到,5300多秒。可见其差异。另外,并行多核计算的代码非常简单,导入multiprocessing,定义其cpu_count,然后导入Pool,执行apply_async,调用get()获得return的结果即可,简单,强大! (2)占地不大 Matla...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS6,CentOS7官方镜像安装Oracle11G
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS关闭SELinux安全模块
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果