Heim Backend-Entwicklung PHP-Tutorial Thinkphp的list_to_tree 实现无限级归类列出所有节点

Thinkphp的list_to_tree 实现无限级归类列出所有节点

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

Thinkphp的list_to_tree 实现无限级分类列出所有节点
list_to_tree 使用起来十分方便,详细可查看手册。因为我在用的时候需要同时列出所有节点,所以写了一个递归函数,拿出来供大家参考。

public function index(){    Load('extend');            //加载扩展方法    $Category=D('Category');    $list=$Category->order('sort desc')->select();//实现同级节点排序    $list=list_to_tree($list,'id','fid'); //详细参数见手册    $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;}
Nach dem Login kopieren


Nach dem Login kopieren

/** * 把返回的数据集转换成Tree * @access public * @param array $list 要转换的数据集 * @param string $pid parent标记字段 * @param string $level level标记字段 * @return array */function list_to_tree($list, $pk='id',$pid = 'pid',$child = '_child',$root=0) {    // 创建Tree    $tree = array();    if(is_array($list)) {        // 创建基于主键的数组引用        $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;}/** * 对查询结果集进行排序 * @access public * @param array $list 查询结果 * @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;}/** * 在数据列表中搜索 * @access public * @param array $list 数据列表 * @param mixed $condition 查询条件 * 支持 array('name'=>$value) 或者 name=$value * @return array */function list_search($list,$condition) {    if(is_string($condition))        parse_str($condition,$condition);    // 返回的结果集合    $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;}
Nach dem Login kopieren



Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So implementieren Sie die Redis-Listenoperation in PHP So implementieren Sie die Redis-Listenoperation in PHP May 26, 2023 am 11:51 AM

Listenoperation //Einen Wert vom Kopf der Liste einfügen. $ret=$redis->lPush('city','guangzhou');//Fügen Sie einen Wert vom Ende der Liste ein. $ret=$redis->rPush('city','guangzhou');//Erhalten Sie die Elemente im angegebenen Bereich der Liste. 0 steht für das erste Element der Liste, -1 für das letzte Element und -2 für das vorletzte Element. $ret=$redis->l

Array mit der Array.Sort-Funktion in C# sortieren Array mit der Array.Sort-Funktion in C# sortieren Nov 18, 2023 am 10:37 AM

Titel: Beispiel für die Verwendung der Array.Sort-Funktion zum Sortieren eines Arrays in C#. Text: In C# ist Array eine häufig verwendete Datenstruktur, und häufig sind Array-Sortiervorgänge erforderlich. C# stellt die Array-Klasse bereit, die über die Sort-Methode verfügt, um Arrays bequem zu sortieren. In diesem Artikel wird gezeigt, wie Sie ein Array mithilfe der Array.Sort-Funktion in C# sortieren, und es werden spezifische Codebeispiele bereitgestellt. Zunächst müssen wir die grundlegende Verwendung der Array.Sort-Funktion verstehen. Array.So

Verwenden Sie „tree', um einen Dateiverzeichnisbaum zur Anzeige zu erstellen Verwenden Sie „tree', um einen Dateiverzeichnisbaum zur Anzeige zu erstellen Mar 01, 2024 pm 05:46 PM

Tree ist ein Befehlszeilentool, das den Inhalt eines Verzeichnisses rekursiv in einem Baumformat auflistet, sodass alle Verzeichnisse, Unterverzeichnisse und Dateien hierarchisch aufgelistet werden und so die Organisationsstruktur von Dateien und Ordnern visuell angezeigt wird. Das Folgende ist die Installation und Verwendung von Tree unter Windows- und Linux-Systemen. Die Installation und Verwendung von Tree unter Linux: aptupdate&&aptinstalltree Im Folgenden werden die üblichen Methoden zur Verwendung des Tree-Befehls beschrieben. #Zeigen Sie den Verzeichnisbaum unter dem angegebenen Pfad an.tree/d/temp#Begrenzen Sie die maximale Anzeigetiefe.tree-L3#Zeigen Sie nur Verzeichnisse, aber keine Dateien an.tree-d#Anzeige einschließlich versteckter Dateien und Verzeichnisse tr

So konvertieren Sie JSONArray in eine Liste in Java So konvertieren Sie JSONArray in eine Liste in Java May 04, 2023 pm 05:25 PM

1: JSONArray-Liste. ;Listlist=JSONObject.parseArray(array.toJSONString(),String.class);System.out.println(list.to

Einfache und klare Methode zur Verwendung der PHP-Funktion array_merge_recursive() Einfache und klare Methode zur Verwendung der PHP-Funktion array_merge_recursive() Jun 27, 2023 pm 01:48 PM

Beim Programmieren in PHP müssen wir häufig Arrays zusammenführen. PHP stellt die Funktion array_merge() bereit, um die Array-Zusammenführung abzuschließen. Wenn jedoch derselbe Schlüssel im Array vorhanden ist, überschreibt diese Funktion den ursprünglichen Wert. Um dieses Problem zu lösen, stellt PHP in der Sprache auch eine Funktion array_merge_recursive() bereit, die Arrays zusammenführen und die Werte derselben Schlüssel beibehalten kann, wodurch das Programmdesign flexibler wird. array_merge

So verwenden Sie die Funktion array_combine in PHP, um zwei Arrays zu einem assoziativen Array zu kombinieren So verwenden Sie die Funktion array_combine in PHP, um zwei Arrays zu einem assoziativen Array zu kombinieren Jun 26, 2023 pm 01:41 PM

In PHP gibt es viele leistungsstarke Array-Funktionen, die Array-Operationen komfortabler und schneller machen können. Wenn wir zwei Arrays zu einem assoziativen Array kombinieren müssen, können wir diese Operation mit der Funktion array_combine von PHP ausführen. Diese Funktion wird tatsächlich verwendet, um die Schlüssel eines Arrays als Werte eines anderen Arrays zu einem neuen assoziativen Array zu kombinieren. Als nächstes erklären wir, wie man die Funktion array_combine in PHP verwendet, um zwei Arrays zu einem assoziativen Array zu kombinieren. Erfahren Sie mehr über array_comb

So sortieren Sie eine Liste mithilfe der List.Sort-Funktion in C# So sortieren Sie eine Liste mithilfe der List.Sort-Funktion in C# Nov 17, 2023 am 10:58 AM

So sortieren Sie eine Liste mithilfe der List.Sort-Funktion in C#. In der Programmiersprache C# müssen wir die Liste häufig sortieren. Die Sortierfunktion der List-Klasse ist ein leistungsstarkes Werkzeug, das für diesen Zweck entwickelt wurde. In diesem Artikel wird die Verwendung der List.Sort-Funktion in C# zum Sortieren einer Liste vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern zu helfen, diese Funktion besser zu verstehen und anzuwenden. Die List.Sort-Funktion ist eine Mitgliedsfunktion der List-Klasse, die zum Sortieren von Elementen in der Liste verwendet wird. Diese Funktion empfängt

Warum gibt list.sort() in Python keine sortierte Liste zurück? Warum gibt list.sort() in Python keine sortierte Liste zurück? Sep 18, 2023 am 09:29 AM

Beispiel In diesem Beispiel schauen wir uns zunächst die Verwendung von list.sort() an, bevor wir fortfahren. Hier haben wir eine Liste erstellt und sie mit der Methode sort() in aufsteigender Reihenfolge sortiert - #CreatingaListmyList=["Jacob","Harry","Mark","Anthony"]#DisplayingtheListprint("List=",myList)# SorttheListsinAscendingOrdermyList .sort(

See all articles