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

首頁 后端開發(fā) php教程 Thinkphp的list_to_tree 實現(xiàn)無限級歸類列出所有節(jié)點

Thinkphp的list_to_tree 實現(xiàn)無限級歸類列出所有節(jié)點

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

Thinkphp的list_to_tree 實現(xiàn)無限級分類列出所有節(jié)點
list_to_tree 使用起來十分方便,詳細(xì)可查看手冊。因為我在用的時候需要同時列出所有節(jié)點,所以寫了一個遞歸函數(shù),拿出來供大家參考。

public function index(){    Load('extend');            //加載擴展方法    $Category=D('Category');    $list=$Category->order('sort desc')->select();//實現(xiàn)同級節(jié)點排序    $list=list_to_tree($list,'id','fid'); //詳細(xì)參數(shù)見手冊    $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;}/** * 對查詢結(jié)果集進行排序 * @access public * @param array $list 查詢結(jié)果 * @param string $field 排序的字段名 * @param array $sortby 排序類型 * 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 查詢條件 * 支持 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;}



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

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

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

標(biāo)題:C#中使用Array.Sort函數(shù)對數(shù)組進行排序的示例正文:在C#中,數(shù)組是一種常用的數(shù)據(jù)結(jié)構(gòu),經(jīng)常需要對數(shù)組進行排序操作。C#提供了Array類,其中有Sort方法可以方便地對數(shù)組進行排序。本文將演示如何使用C#中的Array.Sort函數(shù)對數(shù)組進行排序,并提供具體的代碼示例。首先,我們需要了解一下Array.Sort函數(shù)的基本用法。Array.So

java中JSONArray互相轉(zhuǎn)換List怎么實現(xiàn) java中JSONArray互相轉(zhuǎn)換List怎么實現(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

簡單明了的PHP array_merge_recursive()函數(shù)使用方法 簡單明了的PHP array_merge_recursive()函數(shù)使用方法 Jun 27, 2023 pm 01:48 PM

在進行PHP編程時,我們常常需要對數(shù)組進行合并。PHP提供了array_merge()函數(shù)來完成數(shù)組合并的工作,不過當(dāng)數(shù)組中存在相同的鍵時,該函數(shù)會覆蓋原有的值。為了解決這個問題,PHP在語言中還提供了一個array_merge_recursive()函數(shù),該函數(shù)可以合并數(shù)組并保留相同鍵的值,使得程序的設(shè)計變得更加靈活。array_merge

php如何實現(xiàn)Redis的List操作 php如何實現(xiàn)Redis的List操作 May 26, 2023 am 11:51 AM

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

使用tree生成文件目錄樹進行展示 使用tree生成文件目錄樹進行展示 Mar 01, 2024 pm 05:46 PM

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

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

在PHP中,有許多強大的數(shù)組函數(shù)可以使數(shù)組的操作更加方便和快捷。當(dāng)我們需要將兩個數(shù)組拼成一個關(guān)聯(lián)數(shù)組時,可以使用PHP的array_combine函數(shù)來實現(xiàn)這一操作。這個函數(shù)實際上是用來將一個數(shù)組的鍵作為另一個數(shù)組的值,合并成一個新的關(guān)聯(lián)數(shù)組。接下來,我們將會講解如何使用PHP中的array_combine函數(shù)將兩個數(shù)組拼成關(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ù)的第一個參數(shù)是列表對象,可以是一維或多維的列表;2、使用numpy.asarray()函數(shù),該函數(shù)會盡量使用輸入列表的數(shù)據(jù)類型;3、使用numpy.reshape()函數(shù),可以將一維的列表轉(zhuǎn)換為多維的NumPy數(shù)組;4、使用numpy.fromiter()函數(shù),該函數(shù)的第一個參數(shù)是可迭代對象。

為什么在Python中l(wèi)ist.sort()不會返回已排序的列表? 為什么在Python中l(wèi)ist.sort()不會返回已排序的列表? Sep 18, 2023 am 09:29 AM

示例在這個例子中,我們先看看list.sort()的用法,然后再繼續(xù)。在這里,我們創(chuàng)建了一個列表并使用sort()方法按升序排序-#CreatingaListmyList=["Jacob","Harry","Mark","Anthony"]#DisplayingtheListprint("List=",myList)#SorttheListsinAscendingOrdermyList.sort(

See all articles