1. 程式人生 > >CI框架(無限級分類+遞迴)

CI框架(無限級分類+遞迴)

//無級分類+遞迴
public function digui(){
$crr = $this->db->get('category')->result_array();
$list['type'] = $this->nolimit($crr,0,0);
$this->load->view('list1',$list);
}
public function nolimit($crr,$p_id,$level){
static $arr = array();
foreach($crr as $v){
if($v['parent_id']==$p_id){
$v['level'] = $level;
$arr[] = $v;
$this->nolimit($crr,$v['cat_id'],$level+1);
}
}
return $arr;
}

<td><?PHP echo str_repeat('&nbsp;&nbsp;&nbsp;&nbsp;',$val['level'])?><?php echo $val['cat_name']?></td>

//獲取1級、2級、3級分類
public function sel_child($p_id){
$arr = $this->sel_son($p_id);
foreach($arr as $k=>$v){
$tmp = $this->sel_son($v['cat_id']);
foreach($tmp as $kk=>$vv){
$tmp2 = $this->sel_son($vv['cat_id']);
$tmp[$kk]['childs'] = $tmp2;
}
$arr[$k]['child'] = $tmp;
}
return $arr;
}
//通過ID獲取所有的下級分類


public function sel_son($id){
$this->db->where("parent_id=$id");
return $this->db->get(self::$cate)->result_array();
}

//渲染展示主頁模板
public function lists(){
$p_id = 0;
$brr['type'] = $this->Home_model->sel_child($p_id);
$brr['list'] = $this->db->get('goods')->result_array();
$this->load->view('Home/list.html',$brr);
}

<?php foreach($type as $v){?>
<li id="cat_1" class="">
<h3><a href=""><?php echo $v['cat_name']?></a></h3>
<?php foreach($v['child'] as $vv){?>
<dl class="clearfix">
<dt><a href=""><?php echo $vv['cat_name']?></a></dt>
<?php foreach($vv['childs'] as $vvv){?>
<a href=""><?php echo $vvv['cat_name']?></a>
<?php }?>
</dl>
<?php }?>
</li>
<?php }?>

相關推薦

CI框架無限分類+

//無級分類+遞迴 public function digui(){ $crr = $this->db->get('category')->result_array(); $list['type'] = $this->nolimit($crr,0,

php 無限分類 +sort排序 和 非

1 先總結非遞迴 資料表: id name pid path 1 php 0 0 2 mysql 0 0 3 linux

分享知識-快樂自己:N及分類雙重迴圈、實現

實現多級分類: 1、雙重 for 迴圈實現 N 及分類 /*** * 執行遍歷 * * @param menus * 所有許可權列表集合 * @param list * 指定角色查詢

PHP Yii2.0 框架實現無限分類

實現商品無限分類 mysql: 很簡單的資料庫設計,就能完成分類的無限級   效果預覽:     主要方法: 1.首先獲取所有的分類 獲取分類資料庫裡所有的資料 //獲取所有的分類 public function getData()

PHP無限演算法 和引用

一、遞迴演算法 public function getParentid($id){ $r = User::find()->where(['userid' => $id])->asArray()->one(); if(

無限聯動查詢上級節點

最近專案中遇到的問題做下總結 遞迴查詢 : (無限級聯)樹的最末尾端的code反查上級所有節點 ## public List<Map<String, Object>> getCategoryByImtemcode(String ite

Leetcode之合併有序單鏈表簡單 連結串列

合併兩個已排序的連結列表並將其作為新列表返回。新列表應該通過拼接前兩個列表的節點來完成。 例: 輸入: 1-> 2-> 4,1-> 3-> 4 輸出: 1-> 1-> 2-> 3-> 4-> 4 直接遞迴實現,程式碼來了 /**

【OJ】POJ3889 Fractal Streets 分形,

With a growing desire for modernization in our increasingly larger cities comes a need for new street designs. Chris is one of the unfortunate city planner

LeetCode-100.相同的樹相關話題:

給定兩個二叉樹,編寫一個函式來檢驗它們是否相同。 如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。 示例 1: 輸入: 1 1 / \ / \ 2 3 2 3

普通的改進記憶性的

1. 我們發現假如有時候使用遞迴或者深搜的時候資料量比較大的時候計算速度非常緩慢,而且可以發現最重要的是遞迴的時候存在重複子問題的重複求解了,比如像斐波拉契數列的求解f(n)  = f(n - 1) + f(n - 2)就存在著重複子問題的重複求解f(n - 1)繼續遞迴下去

POJ 1014 Dividing 多重揹包問題+【模板】

Marsha and Bill own a collection of marbles. They want to split the collection among themselves so that both receive an equal share of

求字串的所有組合數分冶法+c++程式碼實現

題目:輸入一個字串,求字元的所有組合。例如輸入字串abc,則它的組合有a、b、c、ab、ac、bc、abc。當交換字串中的兩個字元時,雖然能得到兩個不同的排列,但卻是同一組合。下面假設字串中所有字元都不相同。如果輸入n個字元,則這n個字元能構成長度為1的組合、長度為2的組合、

【演算法-分治】從陣列中取出n個元素的所有組合需要深入理解

本文為轉載,原文章出處http://www.cnblogs.com/shuaiwhu/archive/2012/04/27/2473788.html 如陣列為{1, 2, 3, 4, 5, 6},那麼從它中取出3個元素的組合有哪些,取出4個元素的組合呢? 比如取3個元素

二分查詢迭代和

二分查詢大一的時候寫過,現在有些忘了,再寫一遍備用。 迭代版本 #include<iostream> #include<algorithm> using namespace

最長文子串動態規劃和

給一個字串,找出它的最長的迴文子序列的長度。例如,如果給定的序列是“BBABCBCAB”,則輸出應該是7,“BABCBAB”是在它的最長迴文子序列。 “BBBBB”和“BBCBB”也都是該字串的迴文子序列,但不是最長的。注意和最長迴文子串的區別(參考:最長迴文串)!這

【劍指Offer】從尾到頭列印連結串列C++,棧/

題目連結 題目描述 輸入一個連結串列,從尾到頭列印連結串列每個節點的值。 思路:從尾到頭列印,符合後進先出,用棧儲存,然後存入vector.O(n) 另外,遞迴本質也是棧結構,所以也可以用遞迴寫。 程式碼【棧】: /** * struct List

php實現無限分類樹(最新版)轉發自php中文網的大家講道理

php遞迴實現無限級分類樹(最新版) 程式碼如下: /** * 將資料格式化成樹形結構 * @author Xuefen.Tong * @param array $items * @return array */ function gen

PHP無限分類的實現不使用

無限級分類在開發中經常使用,例如:部門結構、文章分類。無限級分類的難點在於“輸出”和“查詢”,例如 將文章分類輸出為<ul>列表形式; 查詢分類A下面所有分類包含的文章。 1.實現原理 在《無限級分類實現思路》一文中介紹了幾種常見的實現方法,各有利弊。其中“改進前序遍歷樹”資料結構

無限分類的原理方法

在web開發當中,我們經常會遇到無限級分類,既中國有北京、天津、河北、河南等省(自治區、直轄市),河北有石家莊、張家口、唐山等地級市,石家莊又有正定縣、無極縣,正定縣又有。。。。 實現這種無限級分類,我們只需要在欄位中增加一個pid,用於記錄父類的id,這時候我們就可以採用

php實現無限分類牛逼

轉載路徑:http://www.php.cn/php-weizijiaocheng-353267.html 無限級樹狀圖可以說是無限級欄目的一個顯著特徵,我們接下來就來看看兩種不同的寫法。 一.資料庫設計 1 2 3