• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP无限级分类生成树实例代码

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

  分享一例php无限级分类生成树的代码,学习下php无限级分类的实现方法,有需要的朋友参考下。
 
   一段非常精简的PHP无限极分类生成树方法,巧在引用。
 
   例子,php实现无限级分类。
 
   代码示例:
 
   <?php
 
   function generateTree($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;
 
   }
 
   $items = array(
 
   1 => array('id' => 1, 'pid' => 0, 'name' => '安徽省'),
 
   2 => array('id' => 2, 'pid' => 0, 'name' => '浙江省'),
 
   3 => array('id' => 3, 'pid' => 1, 'name' => '合肥市'),
 
   4 => array('id' => 4, 'pid' => 3, 'name' => '长丰县'),
 
   5 => array('id' => 5, 'pid' => 1, 'name' => '安庆市'),
 
   );
 
   print_r(generateTree($items));
 
   打印的结果:
 
   Array
 
   (
 
   [0] => Array
 
   (
 
   [id] => 1
 
   [pid] => 0
 
   [name] => 安徽省
 
   [son] => Array
 
   (
 
   [0] => Array
 
   (
 
   [id] => 3
 
   [pid] => 1
 
   [name] => 合肥市
 
   [son] => Array
 
   (
 
   [0] => Array
 
   (
 
   [id] => 4
 
   [pid] => 3
 
   [name] => 长丰县
 
   )
 
   )
 
   )
 
   [1] => Array
 
   (
 
   [id] => 5
 
   [pid] => 1
 
   [name] => 安庆市
 
   )
 
   )
 
   )
 
   [1] => Array
 
   (
 
   [id] => 2
 
   [pid] => 0
 
   [name] => 浙江省
 
   )
 
   )
 
   上面生成树方法还可以精简到5行:
 
   代码示例:
 
   <?php
 
   function generateTree($items){
 
   foreach($items as $item)
 
   $items[$item['pid']]['son'][$item['id']] = &$items[$item['id']];
 
   return isset($items[0]['son']) ? $items[0]['son'] : array();
 
   }
 
   上面这种无限极分类数据树形结构化的方法值得借鉴。
 
   感觉这段代码实际用途并不明显啊,想取出格式化的树形数据还是要递归啊:
 
   代码示例: www.lefeng123.com
 
   /**
 
   * 如何取数据格式化的树形数据
 
   * @site <
 
   */
 
   $tree = generateTree($items);
 
   function getTreeData($tree){
 
   foreach($tree as $t){
 
   echo $t['name'].'<br>';
 
   if(isset($t['son'])){
 
   getTreeData($t['son']);
 
   }
 
   }
 
   }
 
   getTreeData($tree);
 
 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
php简单的数组递归发布时间:2022-07-10
下一篇:
phpredis的使用方法发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap