无限极分类类代码

阅读 31

2023-05-05

乐杨俊



<?php     
 
class categoryTable extends mysqlDB {
     protected $table_name = 'category';
     protected $fields;

     /**
      * 获得商品分类列表数据
      * @return array array(array(1, '手机配件', 50, 0), array(3, '充值卡', 50, 0), ....);
      */
     public function getList() {
         //获得所有数据
         $query = "select * from cz_category where 1";
         $rows = $this->getAll($query);
         return $this->getTree($rows, 0);
     }

     /**
      * 完成在 所有数据内进行 按照 级别关系进行查找的方法
      * 每找到一个 放入某个地方保存,当所有的分类都找到后,
      * 意味着 排序完成
      * @param $arr 所有的数组元素,我们需要在这个数组内找到某个级别的元素。
      * @param $parent_id 当前所查找的父分类的ID
      * @return array 将$arr内所有的元素都排好的一个数组
      */
     public function getTree($arr, $parent_id) {
         //因为涉及到递归调用,需要开辟一个空间 在所有的递归调用的方法内
         //全都能够访问
         static $tree = array();
         //在$arr内 查找以$parent_id为父分类ID的数据
         //遍历所有的 $arr内元素
         foreach($arr as $row) {
             //判断parent_id字段是否是 $parent_id
             if($row['parent_id'] == $parent_id) {
                 //找到当前$parent_id下的子分类了。
                 $tree[] = $row;
                 //应该先去找 当前分类的子分类
                 $this->getTree($arr, $row['category_id']);
             }
         }
         //返回查找结果
         return $tree;
     }

 }

精彩评论(0)

0 0 举报