php递归方法实现无限分类实例代码

数组:

代码如下:

$items = array(
 array('id' => 1, 'pid' => 0, 'name' => '一级11' ),
 array('id' => 11, 'pid' => 0, 'name' => 'www.jb51.net 一级12' ),
 array('id' => 2, 'pid' => 1, 'name' => '二级21' ),
 array('id' => 10, 'pid' => 11, 'name' => '二级22' ),
 array('id' => 3, 'pid' => 1, 'name' => '二级23' ),
 array('id' => 12, 'pid' => 11, 'name' => '二级24' ),
 array('id' => 13, 'pid' => 12, 'name' => '三级31' ),
 array('id' => 9, 'pid' => 1, 'name' => '二级25' ),
);

函数:

代码如下:

function formatTree($array, $pid = 0){
 $arr = array();
 $tem = array();
 foreach ($array as $v) {
  if ($v['pid'] == $pid) {
   $tem = formatTree($array, $v['id']);
                        //判断是否存在子数组
   $tem && $v['son'] = $tem;
   $arr[] = $v;
  }
 }
 return $arr;
}

(0)

相关推荐

  • PHP 无限分类三种方式 非函数的递归调用!

    php无限分类大致有三种方式, 1.数据库通过设置父类ID来进行唯一索引,然后使用函数的递归调用实现无限分类: 2.数据库设计通过特定格式进行排列,然后使用mysql查询关键函数:concat.程序实现比较简单: 3.第三种不是太了解, 好像要使用到算法和数据结构进行排列. 今天我主要分享下第二种方式,一开始也是找了很多资料,确实比较难理解.不过最终还是给搞明白了,因此记下随笔,希望通过这篇文章能够帮助到大家. 一.数据库设计: 复制代码 代码如下: -- -- Table structure

  • CI框架中$this->load->library()用法分析

    本文分析了CI框架中$this->load->library()的用法.分享给大家供大家参考,具体如下: 我第一次加载失败,原来是文件名和类名不同的原因,先总结关于CI加载你自己的类文件注意事项: 1.第三方加载文件应放在application/libraries文件下 2.文件名和类名应该相同,并且首字母大写,比如说文件名Excel.php  类名应该为Excel 3.通过:$this->load->library('类');方式在你需要的地方加载 4.也可以在applicati

  • php递归实现无限分类生成下拉列表的函数

    复制代码 代码如下: /*------------------ */ //– 递归实现无限分类生成下拉列表函数 //– $tpl->assign('sort_list',createSortOptions ()); //– $tpl->assign('sort_list',createSortOptions ($sort_id)); /*------------------ */ function createSortOptions ($selected=0,$parent_id=0,$n=-

  • CI框架无限级分类+递归的实现代码

    CI是什么? CodeIgniter是一个轻量级但功能强大的PHP框架,基于MVC设计模式,提供了一套丰富的类库,简单易学,高效实用. 下面看下CI框架无限级分类+递归的实现代码,具体代码如下所示: //无级分类+递归 public function digui(){ $crr = $this->db->get('category')->result_array(); $list['type'] = $this->nolimit($crr,0,0); $this->load-

  • 利用php递归实现无限分类 格式化数组的详解

    我们要做一个商品的无限分类首先数据库字段为:id ----------商品主键idfid ---------- 商品父idname ---------- 商品名最后输出的数组格式为 复制代码 代码如下: <PRE class=php name="code"><PRE class=php name="code">array( 0=>array(  'id'=>1,  'fid'=>0,  'name'=>'法国货'  '

  • CI框架简单邮件发送类实例

    本文实例讲述了CI框架简单邮件发送类.分享给大家供大家参考,具体如下: ci框架绝对是php初学中想要的东西,它能极大的缩短你的代码量! 下面看看我的发送邮件的简单演示: function email() { $this->load->library('email'); $config['protocol'] = 'smtp'; $config['smtp_host'] = 'smtp.163.com'; $config['smtp_user'] = 'jb51@163.com';//这里写上

  • CI框架数据库查询之join用法分析

    本文实例讲述了CI框架数据库查询之join用法.分享给大家供大家参考,具体如下: 用 A表中的每个ID 去查询这个 ID 在 people 表中的信息.语句如下: $this->db->from('A'); $this->db->join('B', 'sites.id = B.id'); 用 A表中的每个ID 去查询这个 ID 在 B表中的信息. 注意SQL的约定,如果一个列名在二张表中是重复的,你需要在列名前加上表名和一个"."号.因此sites.id在位置桌

  • CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解

    CodeIgniter 是一个小巧但功能强大的 PHP 框架,作为一个简单而"优雅"的工具包,它可以为开发者们建立功能完善的 Web 应用程序.是比较主流的一个PHP框架. 下面给大家介绍CI框架(ajax分页,全选,反选,不选,批量删除)完整代码,具体代码如下所示: //ajax分页+搜索(视图层) function ajax_page(page){ var sou = $('#sou').val(); $.ajax({ type: "POST", dataTyp

  • php递归方法实现无限分类实例代码

    数组: 复制代码 代码如下: $items = array( array('id' => 1, 'pid' => 0, 'name' => '一级11' ), array('id' => 11, 'pid' => 0, 'name' => 'www.jb51.net 一级12' ), array('id' => 2, 'pid' => 1, 'name' => '二级21' ), array('id' => 10, 'pid' => 11,

  • 2款PHP无限级分类实例代码

    本文章总结了两款PHP无限级分类实现程序代码,有需要学习的朋友可参考一下. 主要思路:首先看第三行和第四行,父类ID(PARENTID)的值是1,表示属于id=1这个类的子类,而,一,二两行因为是一级分类,没有上级分类,所以父类ID(PARENTID)的值是0,表示初级分类,依次类推便实现了无限级分类.最终的效果是: ├一级分类A ├─┴二级分类A ├─┴二级分类B ├一级分类B 然后就是程序,这里以PHP作为描述语言,可以很方便的改成其他语言,因为原理相似,就是一个递归而已. <?php $d

  • php+mysql实现无限分类实例详解

    本文实例讲述了php+mysql实现无限分类的方法.分享给大家供大家参考.具体分析如下: 1.数据库通过设置父类ID来进行唯一索引,然后使用函数的递归调用实现无限分类: 2.数据库设计通过特定格式进行排列,然后使用mysql查询关键函数:concat,程序实现比较简单,首先我们假设有这样的一个三级分类,新闻→PHP新闻→PHP6.0出来了. 如果我们要查找"PHP6.0出来了"这条新闻,我们先点击新闻,然后再点击PHP新闻,就可以查出来了,也就是说我们可以通过祖父类一级一级地往下找,反

  • Asp.net 无限级分类实例代码

    在网上找了很久也没有找到例子,没办法了,想偷懒也偷不成了,还是自己老老实实的写一个吧.不多废话,下面请看我做的详细方法. 1.无限级分类肯定要数据库支持啦,用户可以动态添加他们的分类嘛,下面是数据库的结构: 数据库主要有三个字段,这是最基本的了.第一个是主键,第二个是分类的名称了,第三个是父级目录id号. 2.成品的效果图:(大家最关心的是不是这个啊?看看是什么样子再看程序怎么吧) 看!!就长这个模样啦,这个层次关系就是上面那个数据所显示的结果.怎么样?还行吧... 3.最后就是提供程序咯,程序

  • Matlab实现时间序列预测分类实例代码

    目录 一.数据准备 二.时间序列预测分类 1.输入为xt,输出是yt 2.有x值,有y值:NARX (1)选择模型类型 (2)选择输出,只有y_t (3)选择70%用来作为训练数据,15%用来作为验证使用,15%用来测试 (4)选择delay (5)开始训练 (6)得到参数 (7)将神经网络导出代码 3.无x,有y值:NAR 三.总结 Matlab从2010b版本以后,神经网络工具箱已经升级为7.0,功能大大加强.在之前的版本做时间预测是比较麻烦操作的,MathWorks公司对时间序列预测做了详

  • 基于Pytorch实现的声音分类实例代码

    目录 前言 环境准备 安装libsora 安装PyAudio 安装pydub 训练分类模型 生成数据列表 训练 预测 其他 总结 前言 本章我们来介绍如何使用Pytorch训练一个区分不同音频的分类模型,例如你有这样一个需求,需要根据不同的鸟叫声识别是什么种类的鸟,这时你就可以使用这个方法来实现你的需求了. 源码地址:https://github.com/yeyupiaoling/AudioClassification-Pytorch 环境准备 主要介绍libsora,PyAudio,pydub

  • php上传文件分类实例代码

    废话不多说了,直接给大家贴代码了,具体代码如下所示: <?php /** * 文件上传类 * @author lijiamin * @time 2017-02-17 * @email 1195989301@qq.com */ class Upload{ private $allowExt = array('gif','jpg','jpeg','bmp','png','swf');//限制文件上传的后缀名 private $maxSize = 1;//限制最大文件上传1M /** * 获取文件的信

  • PHP无限分类的类

    复制代码 代码如下: <?php /**  * @author        YangHuan  * @datetime      * @version        1.0.0  */ /**  * Short description.  *  * Detail description  * @author         * @version      1.0  * @copyright      * @access       public  */ class Tree {     /**

  • C#递归方法实现无限级分类显示效果实例

    本文实例讲述了C#递归方法实现无限级分类显示效果.分享给大家供大家参考,具体如下: 运行效果如下图所示: 具体代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="RoleDemo20150305.aspx.cs" Inherits="RoleDemo20150305" %> <!DOCTYPE html PUBLIC "-//W

  • iOS UIScrollView滚动视图/无限循环滚动/自动滚动的实例代码

    我们都知道UIScrollView有一种很流畅的切换效果,结合UIPageControl的辅助展示效果,就可以完成一个很不错的产品介绍功能页面.下面给大家分享iOS UIScrollView滚动视图/无限循环滚动/自动滚动功能,具体代码如下所示: <UIScrollViewDelegate> #define WIDTH [[UIScreen mainScreen] bounds].size.width #define HEIGHT [[UIScreen mainScreen] bounds].

随机推荐