tree.php**:
<?php
/** * 資料處理類
* @package tools_class
* @author su1nss
*/class tree
$arr = array();
foreach ($data as $v)
}return
$arr;
}/**
* 獲得所有子欄目
* @param $data 欄目資料
* @param int $pid 操作的欄目
* @param string $html 欄目名前字元
* @param string $fieldpri 表主鍵
* @param string $fieldpid 父id
* @param int $level 等級
* @return array
*/public function channellist($data, $pid = 0, $html = " ", $fieldpri = 'cid', $fieldpid = 'pid', $level = 1)
if (isset($data[$n + 1]) && $data[$n]['_level'] > $data[$n + 1]['_level'])
}//更新key為欄目主鍵
$category=array();
foreach($data as $d)
return
$category;
}//只供channellist方法使用
static private function _channellist($data, $pid = 0, $html = " ", $fieldpri = 'cid', $fieldpid = 'pid', $level = 1)
}return
$arr;
}/**
* 獲得樹狀資料
* @param $data 資料
* @param $title 欄位名
* @param string $fieldpri 主鍵id
* @param string $fieldpid 父id
* @return array
*/public function trees($data, $title, $fieldpri = 'cid', $fieldpid = 'pid')
}if ($v['_level'] != 1) else
} else
}//設定主鍵為$fieldpri
$data = array();
foreach ($arr as $d)
return
$data;
}/**
* 獲得所有父級欄目
* @param $data 欄目資料
* @param $sid 子欄目
* @param string $fieldpri 唯一鍵名,如果是表則是表的主鍵
* @param string $fieldpid 父id鍵名
* @return array
*/public function parentchannel($data, $sid, $fieldpri = 'cid', $fieldpid = 'pid')
else }}
return
$arr;}}
/*** 判斷$s_cid是否是$d_cid的子欄目
* @param $data 欄目資料
* @param $sid 子欄目id
* @param $pid 父欄目id
* @param string $fieldpri 主鍵
* @param string $fieldpid 父id欄位
* @return bool
*/public function ischild($data, $sid, $pid, $fieldpri = 'cid', $fieldpid = 'pid')
return
false;
}/**
* 檢測是否有子欄目
* @param $data 欄目資料
* @param $cid 要判斷的欄目cid
* @param string $fieldpid 父id表欄位名
* @return bool
*/public function haschild($data, $cid, $fieldpid = 'pid')
return
false;
}/**
* 遞迴實現迪卡爾乘積
* @param $arr 操作的陣列
* @param array $tmp
* @return array
*/public function descarte($arr, $tmp = array())
else
array_pop($tmp);
}return
$n_arr;
}} 複製**
controller呼叫:
$data=db::name('auth_rule')->where('status', 1)->select();
// 獲取樹形或者結構資料
vendor('tree.tree');
$tree = new \tree();
$trees=$tree->trees($data,'title','id','pid'); //樹形
$levels=$tree->channellevel($data,0,' ','id','pid',1); //結構複製**
擴充套件thinkphp5的redis類方法
筆者在開發時發現,thinkphp5的自帶redis類方法,只有簡單的讀取快取 寫入快取的基本方法,遠不能滿足我們業務的需求。redis本身支援五種資料型別,string 字串 hash 雜湊 list 列表 set 集合 zset 有序集合 redis的東西就不必再介紹了,接下來還是讓我一起擴充套...
擴充套件thinkphp5的redis類方法
thinkphp5的自帶redis類方法,只有簡單的讀取快取 寫入快取的基本方法,遠不能滿足我們業務的需求。redis本身支援五種資料型別,string 字串 hash 雜湊 list 列表 set 集合 zset 有序集合 redis的東西就不必再介紹了,接下來還是讓我一起擴充套件thinkphp...
thinkphp5框架擴充套件redis類方法示例
筆者在開發時發現,thinkphp5的自帶redis類方法,只有簡單的讀取快取 寫入快取的基本方法,遠不能滿足我們業務的需求。redis本身支援五種資料型別,string 字串 hash雜湊 list 列表 set 集合 zset 有序集合 redis的東西就不必再介紹了,接下來ekcacfo還是讓...