加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php两种无限分类方法实例

发布时间:2020-12-13 02:35:02 所属栏目:PHP教程 来源:网络整理
导读:《PHP实战:php两种无限分类方法实例》要点: 本文介绍了PHP实战:php两种无限分类方法实例,希望对您有用。如果有疑问,可以联系我们。 PHP编程 一、递归办法 代码如下: $items = array( array('id'=1,'pid'=0,'name'='一级11'), array('id'=2,'name'='一级

《PHP实战:php两种无限分类方法实例》要点:
本文介绍了PHP实战:php两种无限分类方法实例,希望对您有用。如果有疑问,可以联系我们。

PHP编程一、递归办法

代码如下:

$items = array(
array('id'=>1,'pid'=>0,'name'=>'一级11'),
array('id'=>2,'name'=>'一级12'),
array('id'=>3,'pid'=>1,'name'=>'二级21'),
array('id'=>4,'pid'=>3,'name'=>'三级31'),
array('id'=>5,'name'=>'二级22'),
array('id'=>6,'name'=>'三级32'),
array('id'=>7,'pid'=>6,'name'=>'四级41'),
);
$i = 0;
function formatTree($arr,$pid = 0){
$tree = array();
$temp = array();
global $i;
if($arr){
foreach($arr as $k=>$v){
if($v['pid'] == $pid){//
$temp = formatTree($arr,$v['id']);
$temp && $v['son'] = $temp;
$tree[] = $v;
}
}
}
return $tree;
}
print_r(formatTree($items));

二、非递归办法
代码如下:

function genTree($items) {
??? $tree = array(); //格式化好的树
??? foreach ($items as $item)
??????? if (isset($items[$item['pid']])){
??????????? $items[$item['pid']]['son'][] = &$items[$item['id']];
??????? }
??????? else{
??????????? $tree[] = &$items[$item['id']];
??????? }
??? return $tree;
}

PHP编程$items = array(
??? 1 => array('id' => 1,'pid' => 0,'name' => '一级11'),
??? 2 => array('id' => 2,'pid' => 1,'name' => '二级21'),
??? 3 => array('id' => 3,'name' => '二级23'),
??? 4 => array('id' => 4,'pid' => 9,'name' => '三级31'),
??? 5 => array('id' => 5,'pid' => 4,'name' => '四级43'),
??? 6 => array('id' => 6,'name' => '三级32'),
??? 7 => array('id' => 7,'name' => '四级41'),
??? 8 => array('id' => 8,'name' => '四级42'),
??? 9 => array('id' => 9,'name' => '二级25'),
??? 10 => array('id' => 10,'pid' => 11,'name' => '二级22'),
??? 11 => array('id' => 11,'name' => '一级12'),
??? 12 => array('id' => 12,'name' => '二级24'),
??? 13 => array('id' => 13,'name' => '四级44'),
??? 14 => array('id' => 14,'name' => '二级26'),
??? 15 => array('id' => 15,'pid' => 8,'name' => '五级51'),
??? 16 => array('id' => 16,'name' => '五级52'),
??? 17 => array('id' => 17,'name' => '五级53'),
??? 18 => array('id' => 18,'pid' => 16,'name' => '六级64'),
);
print_r(genTree($items));

欢迎参与《PHP实战:php两种无限分类方法实例》讨论,分享您的想法,编程之家 52php.cn为您提供专业教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读