国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁(yè) 後端開(kāi)發(fā) php教程 Thinkphp的list_to_tree 實(shí)現(xiàn)無(wú)限級(jí)歸類(lèi)列出所有節(jié)點(diǎn)

Thinkphp的list_to_tree 實(shí)現(xiàn)無(wú)限級(jí)歸類(lèi)列出所有節(jié)點(diǎn)

Jun 13, 2016 pm 12:01 PM
array list tree

Thinkphp的list_to_tree 實(shí)現(xiàn)無(wú)限級(jí)分類(lèi)列出所有節(jié)點(diǎn)
list_to_tree 使用起來(lái)十分方便,詳細(xì)可查看手冊(cè)。因?yàn)槲以谟玫臅r(shí)候需要同時(shí)列出所有節(jié)點(diǎn),所以寫(xiě)了一個(gè)遞歸函數(shù),拿出來(lái)供大家參考。

public function index(){    Load('extend');            //加載擴(kuò)展方法    $Category=D('Category');    $list=$Category->order('sort desc')->select();//實(shí)現(xiàn)同級(jí)節(jié)點(diǎn)排序    $list=list_to_tree($list,'id','fid'); //詳細(xì)參數(shù)見(jiàn)手冊(cè)    $list=$this->findChild($list);        dump($list);}protected  function findChild($arr){        static $tree=array();        foreach ($arr as $key=>$val){                $tree[]=$val;                if (isset($val['_child'])){                    $this->findChild($val['_child']);                }                    }    return $tree;}



/** * 把返回的數(shù)據(jù)集轉(zhuǎn)換成Tree * @access public * @param array $list 要轉(zhuǎn)換的數(shù)據(jù)集 * @param string $pid parent標(biāo)記字段 * @param string $level level標(biāo)記字段 * @return array */function list_to_tree($list, $pk='id',$pid = 'pid',$child = '_child',$root=0) {    // 創(chuàng)建Tree    $tree = array();    if(is_array($list)) {        // 創(chuàng)建基于主鍵的數(shù)組引用        $refer = array();        foreach ($list as $key => $data) {            $refer[$data[$pk]] =& $list[$key];        }        foreach ($list as $key => $data) {            // 判斷是否存在parent            $parentId = $data[$pid];            if ($root == $parentId) {                $tree[] =& $list[$key];            }else{                if (isset($refer[$parentId])) {                    $parent =& $refer[$parentId];                    $parent[$child][] =& $list[$key];                }            }        }    }    return $tree;}/** * 對(duì)查詢(xún)結(jié)果集進(jìn)行排序 * @access public * @param array $list 查詢(xún)結(jié)果 * @param string $field 排序的字段名 * @param array $sortby 排序類(lèi)型 * asc正向排序 desc逆向排序 nat自然排序 * @return array */function list_sort_by($list,$field, $sortby='asc') {   if(is_array($list)){       $refer = $resultSet = array();       foreach ($list as $i => $data)           $refer[$i] = &$data[$field];       switch ($sortby) {           case 'asc': // 正向排序                asort($refer);                break;           case 'desc':// 逆向排序                arsort($refer);                break;           case 'nat': // 自然排序                natcasesort($refer);                break;       }       foreach ( $refer as $key=> $val)           $resultSet[] = &$list[$key];       return $resultSet;   }   return false;}/** * 在數(shù)據(jù)列表中搜索 * @access public * @param array $list 數(shù)據(jù)列表 * @param mixed $condition 查詢(xún)條件 * 支持 array('name'=>$value) 或者 name=$value * @return array */function list_search($list,$condition) {    if(is_string($condition))        parse_str($condition,$condition);    // 返回的結(jié)果集合    $resultSet = array();    foreach ($list as $key=>$data){        $find   =   false;        foreach ($condition as $field=>$value){            if(isset($data[$field])) {                if(0 === strpos($value,'/')) {                    $find   =   preg_match($value,$data[$field]);                }elseif($data[$field]==$value){                    $find = true;                }            }        }        if($find)            $resultSet[]     =   &$list[$key];    }    return $resultSet;}



本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話題

使用C#中的Array.Sort函數(shù)對(duì)陣列進(jìn)行排序 使用C#中的Array.Sort函數(shù)對(duì)陣列進(jìn)行排序 Nov 18, 2023 am 10:37 AM

標(biāo)題:C#中使用Array.Sort函數(shù)對(duì)陣列進(jìn)行排序的範(fàn)例正文:在C#中,陣列是一種常用的資料結(jié)構(gòu),經(jīng)常需要對(duì)陣列進(jìn)行排序運(yùn)算。 C#提供了Array類(lèi),其中有Sort方法可以方便地對(duì)陣列進(jìn)行排序。本文將示範(fàn)如何使用C#中的Array.Sort函數(shù)對(duì)陣列進(jìn)行排序,並提供具體的程式碼範(fàn)例。首先,我們要先了解Array.Sort函數(shù)的基本用法。 Array.So

java中JSONArray互相轉(zhuǎn)換List怎麼實(shí)現(xiàn) java中JSONArray互相轉(zhuǎn)換List怎麼實(shí)現(xiàn) May 04, 2023 pm 05:25 PM

1:JSONArray轉(zhuǎn)ListJSONArray字串轉(zhuǎn)List//初始化JSONArrayJSONArrayarray=newJSONArray();array.add(0,"a");array.add(1,"b");array.add(2,"c") ;Listlist=JSONObject.parseArray(array.toJSONString(),String.class);System.out.println(list.to

簡(jiǎn)單明了的PHP array_merge_recursive()函式使用方法 簡(jiǎn)單明了的PHP array_merge_recursive()函式使用方法 Jun 27, 2023 pm 01:48 PM

在進(jìn)行PHP編程時(shí),我們常常需要將數(shù)組合併。 PHP提供了array_merge()函數(shù)來(lái)完成數(shù)組合併的工作,但是當(dāng)數(shù)組中存在相同的鍵時(shí),函數(shù)會(huì)覆寫(xiě)原來(lái)的值。為了解決這個(gè)問(wèn)題,PHP在語(yǔ)言中還提供了一個(gè)array_merge_recursive()函數(shù),該函數(shù)可以合併數(shù)組並保留相同鍵的值,使得程式的設(shè)計(jì)變得更加靈活。 array_merge

php如何實(shí)作Redis的List操作 php如何實(shí)作Redis的List操作 May 26, 2023 am 11:51 AM

List操作//從list頭部插入一個(gè)值。 $ret=$redis->lPush('city','guangzhou');//從list尾部插入一個(gè)值。 $ret=$redis->rPush('city','guangzhou');//取得清單指定區(qū)間中的元素。 0表示列表第一個(gè)元素,-1表示最後一個(gè)元素,-2表示倒數(shù)第二個(gè)元素。 $ret=$redis->l

使用tree生成檔案目錄樹(shù)進(jìn)行展示 使用tree生成檔案目錄樹(shù)進(jìn)行展示 Mar 01, 2024 pm 05:46 PM

tree是一個(gè)命令列工具,它以樹(shù)狀格式遞歸地列出一個(gè)目錄的內(nèi)容,使得所有的目錄、子目錄和文件以分層的方式列出,從而直觀地展示文件和資料夾的組織結(jié)構(gòu)。以下是tree在Windows和Linux系統(tǒng)下的安裝與使用方法Linux下tree的安裝與使用Linux下安裝tree:aptupdate&&aptinstalltree以下是tree指令的常用方式。 #顯示指定路徑下的目錄樹(shù)tree/d/temp#限制最大的展示深度tree-L3#只顯示目錄不顯示檔案tree-d#顯示包含隱藏的檔案和目錄tr

如何使用PHP中的array_combine函數(shù)將兩個(gè)陣列拼成關(guān)聯(lián)數(shù)組 如何使用PHP中的array_combine函數(shù)將兩個(gè)陣列拼成關(guān)聯(lián)數(shù)組 Jun 26, 2023 pm 01:41 PM

在PHP中,有許多強(qiáng)大的陣列函數(shù)可以讓陣列的操作更加方便和快速。當(dāng)我們需要將兩個(gè)陣列拼成一個(gè)關(guān)聯(lián)數(shù)組時(shí),可以使用PHP的array_combine函數(shù)來(lái)實(shí)現(xiàn)這一操作。這個(gè)函數(shù)其實(shí)是用來(lái)將一個(gè)陣列的鍵當(dāng)作另一個(gè)陣列的值,合併成一個(gè)新的關(guān)聯(lián)數(shù)組。接下來(lái),我們將會(huì)講解如何使用PHP中的array_combine函數(shù)將兩個(gè)陣列拼成關(guān)聯(lián)數(shù)組。了解array_comb

list如何轉(zhuǎn)numpy list如何轉(zhuǎn)numpy Nov 22, 2023 am 11:29 AM

list轉(zhuǎn)numpy的方法:1、使用numpy.array()函數(shù),該函數(shù)的第一個(gè)參數(shù)是列表對(duì)象,可以是一維或多維的列表;2、使用numpy.asarray()函數(shù),該函數(shù)會(huì)盡量使用輸入列表的資料類(lèi)型;3、使用numpy.reshape()函數(shù),可以將一維的列表轉(zhuǎn)換為多維的NumPy數(shù)組;4、使用numpy.fromiter()函數(shù),該函數(shù)的第一個(gè)參數(shù)是可迭代對(duì)象。

為什麼在Python中l(wèi)ist.sort()不會(huì)傳回已排序的清單? 為什麼在Python中l(wèi)ist.sort()不會(huì)傳回已排序的清單? Sep 18, 2023 am 09:29 AM

範(fàn)例在這個(gè)範(fàn)例中,我們先來(lái)看看list.sort()的用法,然後再繼續(xù)。在這裡,我們建立了一個(gè)清單並使用sort()方法按升序排序-#CreatingaListmyList=["Jacob","Harry","Mark","Anthony"]#DisplayingtheListprint("List=",myList)#SorttheListsinAscendingOrdermyList .sort(

See all articles