ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
递归树 ~~~ /** * 无限极分类递归 * @param $datas 原始数组 * @param int $pid 上级id * @param int $level 等级 * @return array 整理后的数组 */ public function recursion($datas,$pid=0,$level=0){ static $arr=[]; foreach ($datas as $k=>$v){ if($v['pid'] ==$pid){ $v['level']=$level; $arr[]=$v; $this->recursion($datas,$v['id'],$level+1); } } return $arr; } ~~~ 获取分类下所有子分类 ~~~ /** * 获取某一分类下所有子分类 * @param $datas 原数组 * @param $id 条件索引 * @return array id条件加上所有子分类组成的id */ public function getChildren($datas,$id){ static $array=[]; if(is_array($array)&&empty($array)){ $array[]=(int)$id; } foreach ($datas as $k=>$v){ if($v['pid'] == $id){ $array[]=$v['id']; $this->getChildren($datas,$v['id']); } } return $array; } ~~~