树状递归查找

 <?php
//树状等级查找
//所有数据
//从mysql里面输出的全部是字符串类型
$list = array(
     array('cat_id'=>'8','cat_name'=>'分类FFF','sort_order'=>'30','parent_id'=>'1'),
     array('cat_id'=>'1','cat_name'=>'分类AAA','sort_order'=>'50','parent_id'=>'0'),
     array('cat_id'=>'4','cat_name'=>'分类CCC','sort_order'=>'50','parent_id'=>'1'),
     array('cat_id'=>'5','cat_name'=>'分类EEE','sort_order'=>'50','parent_id'=>'4'),
     array('cat_id'=>'7','cat_name'=>'分类KKK','sort_order'=>'50','parent_id'=>'4'),
     array('cat_id'=>'3','cat_name'=>'分类XXX','sort_order'=>'50','parent_id'=>'7'),
     array('cat_id'=>'9','cat_name'=>'分类ZZZ','sort_order'=>'50','parent_id'=>'8'),
   )

/** @param 当前需要查找哪个分类的后代分类
*@param $list, 当前所查找的所有的记录范围
*@param $level ,表示前函数的调用级别
*
*/
function getTree($parent_id,&$list,$level){
   static $tree = array();//保存所有查找的分类
   //变量所有的记录,通过parent_id的值判断
   foreach($list as $row)
   {   if($row['parent_id'] == $parent_id){
     //自分类找到了
      $tree[] = $row;
      //在利用该分类,查找该分类的子分类
      getTree($row['cat_id'],$list,$level+1);当
   }

  }

 return $tree;

}

$result = getTree(0,$list,0);

str_repeat('    ',$row['level']);用空格替代等级。数值越高空格越多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值