php 递归分销角色,PHP递归无限分类

我们面试程序开发的时候,经常会被问到递归的问题。今天我们在本文中以“素材火的特效分类表”作为演示,使用PHP递归结合Mysql实现无限级分类。

25a79f5b69f0bd572fbb0a1ca1b23b58.png

难易:初级

下载资源

下载积分:

50

积分

递归简单的说就是一段程序代码的重复调用,当把代码写到一个自定义函数中,将参数等变量保存,函数中重复调用函数,直到达到某个条件才跳出,返回相应的数据。

cats表: CREATE TABLE IF NOT EXISTS `cats` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`pid` int(11) DEFAULT '0',

`name` varchar(50) NOT NULL,

`ord` int(6) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=132 ;

INSERT INTO `cats` (`id`, `pid`, `name`, `ord`) VALUES

(1, 0, '特效分类', 1),

(2, 0, '难易程度', 2),

(3, 2, '入门级', 1),

(4, 2, '初级', 2),

(5, 2, '中级', 3),

(6, 2, '高级', 4),

(7, 1, '图片代码', 1),

(8, 1, '导航菜单', 2),

(9, 1, '选项卡/滑动门', 3),

......

演示一:返回字符串 echo get_str(0, 0); //输出无限级分类

function get_str($id = 0, $level = 0) {

global $str;

$sql = "select id,name from cats where pid= $id";

$result = mysql_query($sql); //查询pid的子类的分类

if ($result && mysql_affected_rows()) {//如果有子类

$str .= '

  • ';

$level++;

while ($row = mysql_fetch_array($result)) { //循环记录集

$str .= "

" . $row['id'] . "--" . $row['name'] . $level . ""; //构建字符串

get_str($row['id'], $level); //调用get_str(),将记录集中的id参数传入函数中,继续查询下级

}

$str .= '

';

}

return $str;

}

演示二:返回数组 $list = get_array(0); //调用函数

print_r($list); //输出数组

function get_array($id = 0) {

$sql = "select id,name from cats where pid= $id";

$result = mysql_query($sql); //查询子类

$arr = array();

if ($result && mysql_affected_rows()) {//如果有子类

while ($rows = mysql_fetch_assoc($result)) { //循环记录集

$rows['list'] = get_array($rows['id']); //调用函数,传入参数,继续查询下级

$arr[] = $rows; //组合数组

}

return $arr;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
thinkphp开源商城 含支付宝微信支付 三分销商城: (一) 系统管理:菜单权限、前台菜单、角色管理、职员管理、登录日志、操作日志、图片空间、商城消息、风格设置、计划任务 (二) 基础设置:商城配置、导航管理、广告管理、广告位置、银行管理、支付管理、地区管理、友情链接、快递管理、消息模板 (三) 会员管理:会员等、会员管理、账号管理 (四) 文章管理:文章管理、文章分类 (五) 运营管理:推荐管理、商品推荐、店铺推荐、品牌推荐、财务管理、资金管理、提现申请、结算管理、商家结算 (六) 订单管理:订单管理、订单管理、投诉管理、退款管理 (七) 店铺管理:店铺认证、开店申请、店铺管理、停用店铺 (八) 商品管理:商品管理、已上架商品、待审核商品、违规商品、商品分类、商品属性、品牌管理、商品规格、评价管理 (九) 虚拟物品自动发货:虚拟商品上架、卡密管理、自动发货 (十) 扩展管理:插件管理、钩子管理 (十一) 分销管理:分销管理菜单、分销商家列表、分销商品列表、佣金分成列表、推广用户列表 (十二) 数据分析:商品销售排行、店铺销售统计、销售额统计、销售订单统计、新增会员统计、会员登录统计 (十三) 营销管理:三分销,商品团购,限时拍卖、微砍价、优惠券、满减、满送、满包邮、签到送积分、积分商城 (十四) 微信管理:公众号设置、自定义菜单、用户管理、主动回复文本信息、主动回复图文信息、微信消息模板 (十五) 支付管理:支付宝支付,微信支付、银联支付、货到付款、积分支付、余额支付 (十六) 短信接口:中国网建、阿里大于 (十七) 登录接口:QQ登录、微信登录、微博登录 (十八) 物流接口:快递100接口 (十九) 其他接口:UCenter通信接口(可与社区论坛等同步登录退出)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值