12 11 2021
/**
 * 递归法获取无限极类别的树状数组
 * @param array $departments 数据库读取数组
 * @param int $pid 父级ID(顶级类别的pid为0)
 * @param int $level 返回的树状层级
 * @param int $i 层级起始值
 * @return array 返回树状数组
 */
public function departmentSelects($departments=array(), $pid = 0,$level=6,$i = 0)
{

    $arr = array();

    foreach($departments as $key =>$department){

        if($department['parent_id'] == $pid){

            if($i <= $level){

                $arr[$department['id']] = $department;

            }else{

                break;

            }

            $n = $i;
            $n++;

            $children = $this->departmentSelects($departments,$department['id'], $level,$n);

            empty($children) OR $arr[$department['id']]['children'] = $children;

        }else{
            continue;
        }
    }

    return $arr;


}


延伸阅读
  1. 用threejs展示stl格式3D模型
  2. layui下拉筛选