无限极分类/数组处理

------------无限极分类--------------------
    function _tree($arr,$pid=0,$val=0){
        static $list=array();
        foreach($arr as $v){
            if($v["pid"]==$pid){
                $v["val"]=$val;
                $list[]=$v;
                $this->_tree($arr,$v["sid"],$val+1);
            }
        }
        return $list;
    }

------------数组处理---------------

$data2 = array();
foreach($arr as $k=>$v){
if($v[‘pid‘] == 0){
$data2[] = $v;
}
}
//print_R($data2);die;
foreach($data2 as $k=>$v){
foreach($arr as $kk=>$vv){
if($v[‘id‘] == $vv[‘pid‘]){
$data2[$k][‘son‘][] = $vv;
}
}
}
//print_R($data2);die;

时间: 2024-08-24 00:28:04

无限极分类/数组处理的相关文章

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, '

递归的一些应用(二)无限极分类

用递归的方法实现无限极分类 通常我在写项目的时候,在写一些例如商城分类的时候会实现对应分类的上级分类,或者其它项目部门管理的上级部门的时候一般就会用到无限极分类来进行分类 第一步:首先在数据表设计的时候,如果要实现无限极分类,一般我会在数据表多添加一个字段pid,下面我通过一张新建的数据表来说明一下, (1)建表: -- ---------------------------- -- Table structure for pid -- ----------------------------

PHP无限极分类详谈

当你学习php无限极分类的时候,大家都觉得一个字“难”我也觉得很难,所以,现在都还在看,因为工作要用到,所以,就必须得研究研究. 到网上一搜php无限极分类,很多,但好多都是一个,并且,写的很乱,代码很多,让我们怎么学习嘛,那些都不靠谱,还是自己捣鼓捣鼓无限极分类了. 比如一个category表:有id, name, pid, sort 就这四个简单的字段,不要太复杂了. id    name          pid      sort1     PHP           0       1

php实现smarty模板无限极分类的方法

本文和大家分享的主要是php中 实现smarty 模板无限极分类相关内容,一起来看看吧,希望对大家 学习php有所帮助. <?php $conn = mysql_connect("localhost","admin","admin"); mysql_select_db("people_shop",$conn); mysql_query("SET NAMES 'UTF-8'"); $class_arr=

PHP无限极分类的实现(不使用递归)

无限极分类在开发中经常使用,例如:部门结构.文章分类.无限极分类的难点在于“输出”和“查询”,例如 将文章分类输出为<ul>列表形式: 查找分类A下面所有分类包含的文章. 1.实现原理 在<无限级分类实现思路>一文中介绍了几种常见的实现方法,各有利弊.其中“改进前序遍历树”数据结构,便于输出和查询,但是在移动分类和常规理解上有些复杂. 2.数据结构 id fid title 1 0 中国 2 1 江苏 3 1 安徽 4 8 江阴 5 3 芜湖 6 3 合肥 7 3 蚌埠 8 2 无

yii框架无限极分类的做法

用yii框架做了一个无限极分类,主要的数组转换都是粘贴的别人的代码,但还是不要脸的写出来,方便以后自己看 用的是递归,不是path路径 控制器: protected function subtree($arr,$id=0,$lev=1){ $subs = array(); // 子孙数组 foreach($arr as $v) { if($v['parent_id'] == $id) { $v['lev'] = $lev; $subs[] = $v; // 举例说找到array('id'=>1,

无限极分类查找所有子孙节点的改进算法

在以前,遇到无限极分类返回一个节点的所有子孙节点时,我都是用递归计算的,后来发现时间复杂度和空间复杂度都太高了,后来自己研究了一下改进了算法. 节点数据如下:键值对分别是自己对应父亲节点 <?php $tree=array( 1=>0, 2=>1, 3=>2, 4=>3, 5=>4, 6=>5, 7=>6, 8=>7, 9=>8, 10=>9, 11=>10, ); ?> 以往算法如下: <?php function ge

用递归的方法实现无限极分类

通常我在写项目的时候,在写一些例如商城分类的时候会实现对应分类的上级分类,或者其它项目部门管理的上级部门的时候一般就会用到无限极分类来进行分类 第一步:首先在数据表设计的时候,如果要实现无限极分类,一般我会在数据表多添加一个字段pid,下面我通过一张新建的数据表来说明一下, (1)建表: -- ---------------------------- -- Table structure for pid -- ---------------------------- DROP TABLE IF