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 = $this->formatTree($array, $v[‘id‘]);
            $tem && $v[‘son‘] = $tem;
            $arr[] = $v;
        }
    }
    return $arr;
}

  

时间: 2024-08-03 21:05:14

PHP递归(无极分类)的相关文章

递归无限分类笔记

最近项目都上线了每天巩固一下php知识,下面是关于递归无限分类的比较供大家参考! 数据库一个表就可以了,增加一个parendid字段 也就是子级分类 ,排序大家也可以加一下字段. CREATE TABLE `category` (   `id` int(11) NOT NULL,   `name` varchar(255) CHARACTER SET utf8 DEFAULT NULL,   `sort_order` int(11) DEFAULT NULL,   `parendid` int(

php非递归无限级分类.

项目需要.递归无限级分类效率实在太低.理了半天思路写的. 分类越多效率越高. /** * 单次循环返回无限极分类嵌套 * @param array $data 操作的数组 * @param string $columnPri 唯一键名,如果是表则是表的主键 * @param string $columnPid 父ID键名 * @return array */ function region_tree($data, $columnPri, $columnPid) { define('__paren

php 非递归实现分类树

本文实例讲述了php通过前序遍历树实现无需递归的无限极分类.分享给大家供大家参考.具体如下: 大家通常都是使用递归实现无限极分类都知道递归效率很低,下面介绍一种改进的前序遍历树算法,不适用递归实现无限极分类,在大数据量实现树状层级结构的时候效率更高. sql代码如下: CREATE TABLE IF NOT EXISTS `category` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(50) NOT NULL, `lft` i

无极分类之子孙树、父辈树

<?php function subTree($arr, $id=0, $depth=0) { static $tree = array(); foreach ($arr as $key=>$value) { if($value['father_id'] == $id) { $value['depth'] = $depth; $tree[] = $value; subTree($arr, $value['id'], $depth+1); //tree($arr, $value['id'],$d

php无极分类

/* CREATE TABLE `category` ( `id` int(11) NOT NULL AUTO_INCREMENT, `pid` int(11) NOT NULL DEFAULT '0', `cname` varchar(30) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; **/ mysql_connect('localhost', 'root', '') or die('Cannot co

php递归无限分类原理

$items = array( array('id' => 1, 'pid' => 0, 'name' => '一级11' ), array('id' => 11, 'pid' => 0, 'name' => '一级12' ), array('id' => 2, 'pid' => 1, 'name' => '二级21' ), array('id' => 10, 'pid' => 11, 'name' => '二级22' ), arra

php部分,一个用递归无限分类的方法

<?php $data[]=array('id'=>1,'parentid'=>0,'name'=>'中国'); $data[]=array('id'=>2,'parentid'=>0,'name'=>'美国'); $data[]=array('id'=>3,'parentid'=>0,'name'=>'韩国'); $data[]=array('id'=>4,'parentid'=>1,'name'=>'北京'); $data[

ASP.NET 递归将分类绑定到 TreeView

CREATE TABLE [dbo].[sysMenuTree]([NoteId] [decimal](18, 0) NOT NULL,[ParentId] [decimal](18, 0) NULL,[sText] [nvarchar](50) NULL,[sValue] [nvarchar](50) NULL,[sURL] [nvarchar](50) NULL,[sTarget] [nvarchar](50) NULL,[Chger] [nvarchar](50) NULL,[ChgTim

php中递归无限分类之-通过子栏目查找父栏目

<?php header("content-type:text/html;charset=utf8"); /*通过子栏目查找父栏目,范围小到范围大*/ $area = array( array('cat_id'=>1,'province'=>'福建省','parent_id'=>0), array('cat_id'=>2,'province'=>'龙岩市','parent_id'=>1), array('cat_id'=>3,'provi