当前位置:首页 > PHP教程 > php应用 > 列表

PHP如何通过传引用的思想实现无限分类(代码简单)

发布:smiling 来源: PHP粉丝网  添加日期:2021-06-20 15:07:52 浏览: 评论:0 

本文给大家介绍php引用传递,如何通过引用出的思想实现无限分类,代码超简单,需要的朋友可以借鉴下。

无限级分类,主要是通过储存上级分类的id以及分类路径来实现,在我的Simpla中,用到了无限分类,使用了PHP的传引用思想实现无限分类的方法,可以完美展示类似这样的分类模式。

  1. id   pid   name 
  2. 1    0     四川 
  3. 2    0     重庆 
  4. 3    1     成都 
  5. 4    1     绵阳 
  6. 5    3     高新区 

代码如下所示:

  1. /** 
  2.   * 数组变成无限级分类--传引用思想 
  3.   * @param array $items 
  4.   * @return array 
  5.   */ 
  6.  public static function get_tree($orig) { 
  7.   //解决下标不是1开始的问题 
  8.   $items = array(); 
  9.   foreach ($orig as $key => $value) { 
  10.    $items[$value[‘id‘]] = $value
  11.   } 
  12.   //开始组装 
  13.   $tree = array(); 
  14.   foreach ($items as $key => $item) { 
  15.    if ($item[‘pid‘] == 0) { //为0,则为1级分类 
  16.     $tree[] = &$items[$key]; 
  17.    } else { 
  18.     if (isset($items[$item[‘pid‘]])) { //存在值则为二级分类 
  19.      $items[$item[‘pid‘]][‘child‘][] = &$items[$key]; //传引用直接赋值与改变 
  20.     } else { //至少三级分类 
  21.      //由于是传引用思想,这里将不会有值 
  22.      $tree[] = &$items[$key]; 
  23.     } 
  24.    } 
  25.   } 
  26.   return $tree
  27.  } 

以上内容很简单吧,如有错误或者更好的方法,希望可以相互交流,谢谢!

Tags: PHP引用 PHP无限分类

分享到: