Thinkphp の list_to_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;}
/** * 把返回的数据集转换成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;}

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









リスト操作 //リストの先頭から値を挿入します。 $ret=$redis->lPush('city','guangzhou');//リストの末尾から値を挿入します。 $ret=$redis->rPush('city','guangzhou');//リストの指定範囲内の要素を取得します。 0 はリストの最初の要素を表し、-1 は最後の要素を表し、-2 は最後から 2 番目の要素を表します。 $ret=$redis->l

タイトル: Array.Sort 関数を使用して C# で配列を並べ替える例 本文: C# では、配列は一般的に使用されるデータ構造であり、多くの場合、配列を並べ替える必要があります。 C# には Array クラスが用意されており、このクラスには配列を簡単に並べ替えるための Sort メソッドがあります。この記事では、C# で Array.Sort 関数を使用して配列を並べ替える方法を示し、具体的なコード例を示します。まず、Array.Sort 関数の基本的な使用法を理解する必要があります。 Array.So

Tree は、ディレクトリの内容をツリー形式で再帰的にリストするコマンド ライン ツールです。これにより、すべてのディレクトリ、サブディレクトリ、およびファイルが階層形式でリストされ、それによってファイルとフォルダの組織構造が視覚的に表示されます。 Windows および Linux システムでの Tree のインストールと使用方法 Linux での Tree のインストールと使用 Linux での Tree のインストール: aptupdate&&aptinstalltree 以下は、tree コマンドの一般的な使用方法です。 #指定したパスの下のディレクトリ ツリーを表示しますtree/d/temp#最大表示深度を制限しますtree-L3#ディレクトリのみを表示し、ファイルは表示しませんtree-d#隠しファイルとディレクトリを含めて表示しますtr

1: JSONArray を List にJSONArray 文字列を List に//JSONArray を初期化するJSONArrayarray=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 でプログラミングする場合、多くの場合、配列をマージする必要があります。 PHP には、配列のマージを完了するための array_merge() 関数が用意されていますが、配列内に同じキーが存在する場合、この関数は元の値を上書きします。この問題を解決するために、PHP は配列をマージして同じキーの値を保持できる array_merge_recursive() 関数を言語で提供し、プログラム設計をより柔軟にします。配列マージ

PHP には、配列操作をより便利かつ高速にする強力な配列関数が多数あります。 2 つの配列を結合して連想配列にする必要がある場合、PHP の array_combine 関数を使用してこの操作を実行できます。この関数は、実際には、ある配列のキーを別の配列の値として新しい連想配列に結合するために使用されます。次に、PHP の array_combine 関数を使用して 2 つの配列を結合して連想配列にする方法を説明します。 array_comb について学ぶ

C# で List.Sort 関数を使用してリストを並べ替える方法 C# プログラミング言語では、リストを並べ替える必要があることがよくあります。 List クラスの Sort 関数は、この目的のために設計された強力なツールです。この記事では、C# で List.Sort 関数を使用してリストを並べ替える方法を紹介し、読者がこの関数をより深く理解し、適用できるように具体的なコード例を示します。 List.Sort 関数は List クラスのメンバー関数であり、リスト内の要素を並べ替えるために使用されます。この関数は受信します

例 この例では、続行する前に、まず list.sort() の使用法を確認します。ここでは、リストを作成し、sort() メソッドを使用して昇順に並べ替えています - #CreatingaListmyList=["Jacob","Harry","Mark","Anthony"]#DisplayingtheListprint("List=",myList)#リストを昇順で並べ替えますmyList .sort(
