php 无限分类实现方法实例代码_PHP教程
推荐:PHP根据变量的类型 选择dump或echo我想要在PHP输出变量的时候,如果是数组,则用var_dump,如果是字符串之类的,则echo即可,该如何实现呢? 此时,is_scalar内置函数就派上用场了。is_scalar-- 检测变量是否是一个标量 标量变量是指那些包含了 integer 、 float 、 string 或 boolean 的变量,而 array
算法,各种算法对一个数学很烂的人来说真是一个严重的打击!!!但谁让咱干程序这行呢(哭)。
搞了几小时,参照 http://yuepin.com/Explore/tree.php? 该网址的说明实例,可算是明白一点,下边代码,给自己留个笔记。
注:因为是无限次的调用,所以我加了个判断,在层级$level=10的时候让他跳出。没有哪个正常网站会放超过10层的目录结构吧。
- $yArr = array(
- 1 => array('id'=>'1','parentid'=>0,'name'=>'一级栏目一'),
- 2 => array('id'=>'2','parentid'=>0,'name'=>'一级栏目二'),
- 3 => array('id'=>'3','parentid'=>1,'name'=>'二级栏目一'),
- 4 => array('id'=>'4','parentid'=>1,'name'=>'二级栏目二'),
- 5 => array('id'=>'5','parentid'=>2,'name'=>'二级栏目三'),
- 6 => array('id'=>'6','parentid'=>3,'name'=>'三级栏目一'),
- 7 => array('id'=>'7','parentid'=>3,'name'=>'三级栏目二'),
- 8 => array('id'=>'8','parentid'=>2,'name'=>'二级栏目三'),
- );
- /**
- * 无限分类
- * @param array $data 原始数组
- * @param int $id 当前id
- * @param int $layer 当前层级
- */
- function genCate($data, $pid = 0, $level = 0)
- {
- if($level == 10) break;
- static $tarr= array();
- $l = str_repeat(" ", $level);
- $l = $l.'└';
- foreach($data as $row)
- {
- /**
- * 如果父ID为当前传入的id www.mb5u.com
- */
- if($row['parentid'] == $pid)
- {
- //如果当前遍历的id不为空
- $row['name'] = htmlspecialchars($l.$row['name']);
- $row['level'] = $level;
- $tarr[] = $row;
- genCate($data, $row['id'], $level+1);//递归调用
- }
- }
- return $tarr;
- }
- $carr = genCate($yArr);
- print_r($carr);
分享:CI链接操作多个数据库CI链接多个数据库 最近有个需求,做一个独立后台出来,这个独立后台有单独的库,单独的url,单独。但是,这里边只是一些基础数据,而使用者需要通过该库查看另一个库里的统计数据。这就带来一个问题:我需要在控制器里边可以同时操作两个数据库,而且这两个库毫不相干!
相关PHP教程:
- 相关链接:
- 教程说明:
PHP教程-php 无限分类实现方法实例代码。