1. 第一種
```
//無極限分類--遞歸
public function getTree($array, $pid =0, $level = 0){
//聲明靜態數組,避免遞歸調用時,多次聲明導致數組覆蓋
static $list = [];
foreach ($array as $key => $value){
//第一次遍歷,找到父節點為根節點的節點 也就是pid=0的節點
if ($value['pid'] == $pid){
//父節點為根節點的節點,級別為0,也就是第一級
$value['level'] = $level;
//把數組放到list中
$list[] = $value;
//把這個節點從數組中移除,減少后續遞歸消耗
unset($array[$key]);
//開始遞歸,查找父ID為該節點ID的節點,級別則為原級別+1
$this->getTree($array, $value['id'], $level+1);
}
}
return $list;
}
```
2. 第二種
```php
if (!function_exists('get_cate_list')) {
//遞歸函數 實現無限級分類列表
function get_cate_list($list,$pid=0,$level=0) {
static $tree = array();
foreach($list as $row) {
if($row['pid']==$pid) {
$row['level'] = $level;
$tree[] = $row;
get_cate_list($list, $row['id'], $level + 1);
}
}
return $tree;
}
}
```
3. 第三種
```php
if(!function_exists('get_tree_list')){
//引用方式實現 父子級樹狀結構
function get_tree_list($list){
//將每條數據中的id值作為其下標
$temp = [];
foreach($list as $v){
$v['son'] = [];
$temp[$v['id']] = $v;
}
//獲取分類樹
foreach($temp as $k=>$v){
$temp[$v['pid']]['son'][] = &$temp[$v['id']];
}
return isset($temp[0]['son']) ? $temp[0]['son'] : [];
}
}
```
## 獲取父類id下的所有子類id和孫子類id
```php
//獲取用戶的所有下級ID
function get_downline($members,$mid,$level=0){
$arr=array();
foreach ($data as $key => $v) {
if($v['pid']==$mid){ //pid為0的是頂級分類
$v['level'] = $level+1;
$arr[]=$v;
$arr = array_merge($arr,get_downline($data,$v['id'],$level+1));
}
}
return $arr;
}
```
- PHP獲取客戶端瀏覽器信息和版本
- PHP獲取客戶端操作系統信息
- 無限級分類
- git使用
- 權限檢測思路
- Vue學習
- 遇到的一些問題
- PHP的編碼思維和技巧
- mysql復習
- tp5
- ThinkPHP5.x 公共函數
- TP5登錄注冊
- TP5使用模板繼承
- ThinkPHP5.1 清除緩存
- thinkphp5實現安裝程序
- 安全
- tp中實現跨域代碼
- ThinkPHP5.1配合pjax實現菜單欄無刷新跳轉
- 獲取數據庫版本和數據庫大小
- 模型的基本CURD操作
- 商品spu
- 全局異常處理類
- ExceptionHandler
- BaseException
- PHP函數之error_reporting(E_ALL ^ E_NOTICE)詳細說明
- 微信小程序
- wx:for
- tp6
- 分離的一些模塊
- session開啟
- Spring
- 依賴注入
- 數據結構
- 二叉樹
- js獲取地址欄變量
- PHP設計模式
- 面向對象
- PHP1
- PHP性能優化
- Java學習
- static關鍵字
- 多態
- 接口、階乘
- 大佬給的面試題
- 訪問量為5000萬的博客系統設計
- PHP可變參數
- Nginx的配置案例
- 求數組中的最大值,并返回數組索引
- PHP面試方向
- PHP數組工具類ArrUtil
- 字符串工具類StrUtil
- PHP使用curl發送請求
- mysql
- PHP上傳base64圖片處理函數
- webstorm小程序常用配置
- 郵箱正則表達式
- leetcode mysql記錄
- 函數庫