0

0

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

PHP中文网

PHP中文网

发布时间:2016-06-06 19:41:07

|

1207人浏览过

|

来源于php中文网

原创

在进行无限极分类中最常用的算法就是“递归”,熟悉php语言的朋友肯定知道,php不擅长递归 ,而且递归次数有限(100次左右,因操作系统和配置而异)。

所以本文将会给大家带来几种不使用递归实现无限级分类的代码。供大家来学习使用。

第一种:

无限级分类在开发中经常使用,例如:部门结构、文章分类。无限级分类的难点在于“输出”和“查询”,例如

1.实现原理
几种常见的实现方法,各有利弊。其中“改进前序遍历树”数据结构,便于输出和查询,但是在移动分类和常规理解上有些复杂。

2.数据结构

1, 'fid'=>0, 'title' => '中国'), 
 array('id'=>2, 'fid'=>1, 'title' => '江苏'),
 array('id'=>3, 'fid'=>1, 'title' => '安徽'),
 array('id'=>4, 'fid'=>8, 'title' => '江阴'),
 array('id'=>5, 'fid'=>3, 'title' => '芜湖'),
 array('id'=>6, 'fid'=>3, 'title' => '合肥'),
 array('id'=>7, 'fid'=>3, 'title' => '蚌埠'),
 array('id'=>8, 'fid'=>8, 'title' => '无锡')
 );
?>

由于所有的递归均可以使用循环实现,本文根据PHP语言特点编写了一套关于“无限级”分类的函数,相比递归实现而言效率更高。

3.输出ul列表形式
将上述数据输出为下面的HTML

  • 江苏

    • 无锡

      • 江阴

  • 安徽

    • 芜湖

    • 合肥

    • 蚌埠

这种HTML结构在前端使用(使用JavaScript和CSS构造可折叠树)十分方便。具体实现程序如下:

BJXSHOP网上开店专家
BJXSHOP网上开店专家

BJXShop网上购物系统是一个高效、稳定、安全的电子商店销售平台,经过近三年市场的考验,在中国网购系统中属领先水平;完善的订单管理、销售统计系统;网站模版可DIY、亦可导入导出;会员、商品种类和价格均实现无限等级;管理员权限可细分;整合了多种在线支付接口;强有力搜索引擎支持... 程序更新:此版本是伴江行官方商业版程序,已经终止销售,现于免费给大家使用。比其以前的免费版功能增加了:1,整合了论坛

下载

4.输出option列表形式

具体实现程序如下: