php无线分类父类,PHP无限分类实现

以前实现无限分类都没好好研究过,今天突然来兴趣就随手写了一个递归的无限极分类,希望对大家有借鉴意义!<?php

/*模拟数据库查询出来的分类数据*/

$data = array(

array('id'=>1,'name'=>1,'fid'=>0),

array('id'=>2,'name'=>2,'fid'=>0),

array('id'=>3,'name'=>3,'fid'=>0),

array('id'=>4,'name'=>4,'fid'=>1),

array('id'=>5,'name'=>5,'fid'=>2),

array('id'=>6,'name'=>6,'fid'=>3),

array('id'=>7,'name'=>7,'fid'=>4),

array('id'=>8,'name'=>8,'fid'=>9),

array('id'=>9,'name'=>9,'fid'=>4)

);

/**

* 无限分类递归函数

* @param array $data 分类信息

* @param string $fid 父类id

* @param integer $pad 页面显示的缩进大小

* @return string 拼接好的菜单(可以根据具体需求做修改)

*/

function menu(&$data, $fid, $pad=0) {

if(count($data) < 1) {

return;

}

//拼接字符串

$str = '';

foreach ($data as $key => $value) {

if($value['fid'] == $fid) {

$str .= str_repeat('   ', $pad);

$str .= $value['name'].'
';

unset($data[$key]);

//递归

$str .= menu($data,$value['id'],$pad+1);

}

}

return $str;

}

echo menu($data,0);

/*结果

1

4

7

9

8

2

5

3

6

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值