夺命雷公狗---无限极分类NO3

<?php
	header("Content-Type:text/html;charset=utf-8");
	/*
		无限级分类。牵扯2个应用
		0是-找指定栏目的子栏目
		1是-找指定栏目的子孙栏目,即子孙树
		2是-找指定栏目的父栏目/父父栏目....顶级栏目,即家谱树
	*/
	$aarr = array(
		array(‘id‘=>1,‘name‘=>‘安徽‘,‘pid‘=>0),
		array(‘id‘=>2,‘name‘=>‘海淀‘,‘pid‘=>7),
		array(‘id‘=>3,‘name‘=>‘浣溪县‘,‘pid‘=>5),
		array(‘id‘=>4,‘name‘=>‘昌平‘,‘pid‘=>7),
		array(‘id‘=>5,‘name‘=>‘淮北‘,‘pid‘=>1),
		array(‘id‘=>6,‘name‘=>‘朝阳‘,‘pid‘=>7),
		array(‘id‘=>7,‘name‘=>‘北京‘,‘pid‘=>0),
		array(‘id‘=>8,‘name‘=>‘上地‘,‘pid‘=>2)
	);

	function subtree($arr,$id=0,$lev=1){
		$subs = array(); //子孙树
		foreach($arr as $v){
			if($v[‘pid‘] == $id){
				$v[‘lev‘] = $lev;
				$subs[] = $v;
				$subs = array_merge($subs,subtree($arr,$v[‘id‘],$lev+1));//array_merge让数组粘起来
			}
		}
		return $subs;
	}
	$tree = subtree($aarr,0,1);
	foreach($tree as $v){
		echo str_repeat(‘&nbsp;&nbsp;‘,$v[‘lev‘]).$v[‘name‘].‘<br/>‘;//str_repeat替换
	}

上一课是使用了static的方法这里就是不实用static,而是使用array_merge实现效果

时间: 2024-10-11 23:57:19

夺命雷公狗---无限极分类NO3的相关文章

夺命雷公狗ThinkPHP项目之----企业网站8之栏目的添加完善(无限极分类的完成)

我们刚才只是完成了添加的一部分,但是我们的上级分类也不能永远都是只有一个死的嘛,所以我们需要对她进行修改: 我们先将add方法里面的数据查出来再说: 然后在模板页进行遍历: 展示效果如下所示: 虽然是出现了,但是没有向我们平常时候见到的无限极分类一样噢,一般比如分类 多多,分类下面的 好多美女啊 是多多的下级分类,那么好多美女啊他前面是有几个空格之类的隔开, 那么我们就需要在model层里面对她进行排序的设置了: <?php namespace Admin\Model; use Think\Mo

夺命雷公狗TP3.2.3商城13-----无限极分类添加

由于我们需要使用到的是模型来验证一下,所以我们先到  D:\phpStudy\WWW\shop\WEB\Admin\Model   下创建一个CateModel.class.php <?php namespace Admin\Model; use Think\Model; class CateModel extends Model { protected $_validate = array( array('catename','require','分类名称不能为空',1) ); } 然后来设置

夺命雷公狗TP3.2.3商城16-----无限极分类删除(玩法1:有子级分类的不能删除)

无限极分类的删除和别地方的删除有一些地方不同,比如,别的地方删除就是直接干掉即可,但是我们的无限极分类则不然,因为还有子级栏目的,我们就不能让他删除,否则就有一大群无家可归的子级分类了: 那么首先来到 列表页  的模版下,将他的ID传过去: 这样我们即可在 控制器下的 del  方法接收得到ID了,然后到控制器下进行处理: public function del(){ $id = I('id'); $mod = D('cate'); //查询下该栏目还有木有子栏目 $data = $mod ->

夺命雷公狗ThinkPHP项目之----商城8商品品牌管理

本章的主要目标是为了对商品品牌进行CRUD(增删改查)操作. 我们在写的时候就要了解业务逻辑,也就是了解表结构 每个字段代表什么含义,为什么是这个类型的 logo:保存的是图片,一般是分两个途径来保存的, 1.保存图片的本身,保存在目录之下 2.将图片的路径保存到数据表中 我们先创建一个名字为BrandController的控制器,和在view视图里面创建一个Brand的文件夹来进行存放模版文件,如下图所示: 然后将add里面的css和图片路径该下即可代码如下: <!DOCTYPE html P

夺命雷公狗---微信开发23----客服消息接口基础和推送文本

我们这边课程里面一共用到了三个文件,分别是WeChat.class.php和common.php以及index.php 我们在写这个功能之前也要学会查手册,手册我们可以在微信开发这里找到,如下所示: 点击进去后我们将会看到客服接口,我们可以点击下进去看看里面有什么动动 这里有一个发送文本消息的,我们点击进去看下 这里很明显就看到文本消息是通过一个json数据来进行实现的,废话不多说,开工 这里我们先来写一个WeChat.php的文件,这里作用主要适用于封装一个CURL上传类的,代码如下所示: <

PHP无限极分类

概述 ??在实际工作中,经常要用到无限极分类.如导航表等等.到网上一搜php无限极分类,很多,但好多都是一个,并且,写的很乱,代码很多,那些都不靠谱,还是自己捣鼓捣鼓无限极分类了.下面介绍两种无限极分类:递归,使用引用 数据准备 //初始化原始数据(id=>编号,name=>显示名称,pid=>父级目录id,sort=>排序顺序) $data[1] = array('id'=>'1','name'=>'一级目录A','pid'=>'0','sort'=>'1

php递归无限极分类

递归无限级分类有几种形式,我这里只举例比较常用的三种: 第一种:返回有排序的数组: <?php $data = array( 1 => array( 'id' => 1, 'pid' => 0, 'user_name' => 'one', ), 2 => array( 'id' => 2, 'pid' => 1, 'user_name' => 'two', ), 3 => array( 'id' => 3, 'pid' => 1, '

夺命雷公狗---微信开发17----自定义菜单的事件推送,响应菜单的CLICK

废话不多说,index.php 代码如下所示: <?php /** * wechat php test */ //define your token require_once "common.php"; define("TOKEN", "twgdh"); $wechatObj = new wechatCallbackapiTest(); //当接入成功后,请注销这句话,否则,会反复验证. //$wechatObj->valid();

递归与无限极分类

在函数内部调用本身,且在调用时要做判断. 例:输出1~9 function deeploop(&$i=1){   //引用传值,防止递归时从1开始 echo  $i; $i++; if($i < 10){             //条件判断,防止无限递归 deeploop($i); } } 2.无限极分类原理:每次分类都需要记录它的父级id,如果是顶级,则父级id为0,通过父级id,一层一层往下查. 首先从数据库中取出结果集,把结果集中的pid与顶级的pid开始,然后确定顶级父级.依次往下