欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php 用递归实现的无限级别归类

程序员文章站 2024-01-30 23:39:22
...
php 用递归实现的无限级别分类
header("Content-type:text/html; charset=utf-8");
/**
*
* @category contry_category 实现一个无限级别分类,类似种类的划分,常用在栏目导航
*
*/


/**
+-------------------------------------------------------------------------------+
| id name 类别id |
| 1 中国 0 |
| 2 北京 1 |
| 3 上海 1 |
| 4 美国 0 |
* 5 纽约 4 *
* 6 华盛顿 4 *
* 7 加州福尼亚 4 *
+-------------------------------------------------------------------------------+
*
* 类别id 为0的是*栏目
* 类别id 为id相同的是所属分类
*/


class contry_category{
public $i =-1;
public function index($array){
$this->i++;
if($array[$this->i]['category_id']==0){
echo "├".$array[$this->i]["name"]."
";
for($j=0;$j if($array[$j]['category_id']==$array[$this->i]['id']){ //查看所属分类
echo "├─┴".$array[$j]["name"]."
";
}
}
}
foreach($array as $v){
if($v['category_id']==0)
$ary[]=$v['category_id']; //获取几个*栏目,来确定递归几次
}

if($this->i $this->index($array); //递归
}
}
$infos = array(array("id"=>1,'name'=>"中国","category_id"=>0),array("id"=>2,'name'=>"北京","category_id"=>1),array("id"=>3,'name'=>"上海","category_id"=>1),array("id"=>4,'name'=>"美国","category_id"=>0),array("id"=>5,'name'=>"纽约","category_id"=>4),array("id"=>6,'name'=>"华盛顿","category_id"=>4),array("id"=>7,'name'=>"加州福尼亚","category_id"=>4));

$obj =new contry_category();
$obj->index($infos);






/**
* 打印出来的效果是这样
* ├中国
├─┴北京
├─┴上海
├美国
├─┴纽约
├─┴华盛顿
├─┴加州福尼亚
*/
php 用递归实现的无限级别归类

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频