php无限极,php实现无限极分类 - MyClassPHP-Colin主页 - OSCHINA - 中文开源技术交流社区...
/**
* 無限分類
* @param [type] $model 一個模型對象
* @param integer $pid 上級ID
* @param array &$categorys 一個保存結果的數組
* @param integer $spac 空格循環次數
* @return [type] array
*/
function data2array($model = null , $pid = 0 , &$categorys = array() , $spac = 0){
$spac = $spac + 2 ;
//得到sql語句
$sql = $model->order('sort desc,id asc')->where(array('pid' => $pid))->field('*')->getSql();
//執行這條sql語句并返回資源類型
$query = $model->execute_resource($sql);
//遍歷
while($rows = $query->fetch_assoc()){
$rows['name'] = str_repeat('?',$spac).'|--'.$rows['name'];
$categorys[] = $rows;
data2array($model , $rows['id'] , $categorys , $spac);
}
return $categorys;
}
/**
* 顯示成html樣式
* @param [type] $model 一個模型對象
* @param integer $pid 上級ID
* @param integer $selected select的默認選中值
* @param [type] $selectName select的名稱
* @param boolean $is_top 是否頂級菜單
* @return [type] string
*/
function displayCate($model = null , $pid = 0 , $selected = 0 , $selectName = null , $is_top = true){
$result = data2array($model , $pid);
$str .= '';
if($is_top){
$str .= '頂級菜單';
}
foreach($result as $key => $value){
/*重置!*/
$selectedstr = '';
if($value['id'] == $selected) $selectedstr = 'selected';
$str .= ''.$value['name'].'';
}
$str .= '';
return $str;
}
//使用
displayCate(M('Channel') , 0 , 0 , 'pid');
總結
以上是生活随笔為你收集整理的php无限极,php实现无限极分类 - MyClassPHP-Colin主页 - OSCHINA - 中文开源技术交流社区...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: slr1文法_SLR的完整形式是什么?
- 下一篇: Python程序输入一个字符串并查找总数