PHP遞迴獲取所有下級
<?php $data = [ [ 'uid' => 1, 'username' => '155', 'parent_username' => '0' ], [ 'uid' => 2, 'username' => '186', 'parent_username' => '155' ], [ 'uid' => 3, 'username' => '189', 'parent_username' => '186' ], [ 'uid' => 4, 'username' => '188', 'parent_username' => '155' ], [ 'uid' => 5, 'username' => '187', 'parent_username' => '188' ], [ 'uid' => 6, 'username' => '1898', 'parent_username' => '146' ], ]; /** * 獲取所有下級 * [getTree description] * @param [type] $data [description] * @param string $parent_username [description] * @return [type] [description] */ //有層次,返回所有下級資料 function getTree($data, $parent_username = '0') { $arr = []; foreach($data as $key => $val){ if($val['parent_username'] == $parent_username){ $val['children'] = getTree($data, $val['username']); $arr[] = $val; } } return $arr; } //無層次,僅返回id function getTree($data, $parent_username = '0', $is_first_time = true) { static $arr = []; if ($is_first_time) { $arr = []; } foreach ($data as $key => $val) { if ($val['parent_username'] == $parent_username) { $arr[] = $val['uid']; getTree($data, $val['username'], false); } } return $arr; } echo '<pre>'; print_r(getTree($data)); ?>
相關推薦
PHP遞迴獲取所有下級
<?php $data = [ [ 'uid' => 1, 'username' => '155', 'parent_username' => '0' ],
php 高效、非遞迴迴圈所有下級,並將結果存為一維陣列
1.取出所有資料 public function teammember($id){ $next = pdo_fetchall("select id,openid,agentid from ".tablename("ewei_shop_member")."
Think PHP遞歸獲取所有的子分類的ID (刪除當前及子分類)
cti eid 刪除 error return code where arr pre 遞歸獲取所有的子分類的ID: //遞歸獲取所有的子分類的ID function get_all_child($array,$id){ $arr = array(); fo
PHP遞迴獲取選單
//首先做一個類內的變數,儲存一下相關的陣列: public $tree = null; //然後做個測試方法,用於輸出結果 public function test() { $r
用shell指令碼從多個不相關的目錄中遞迴獲取所有影象的路徑
get_imagelist.sh原始碼: dir_list=( "/opt/win/tim.zhong/database/face_dataset/image
sqlserver通過遞迴查詢所有下級或上級部門和使用者
查詢當前使用者所在部門的所有下級包括當前部門with cte as ( select Id,Pid,DeptName, 0 as lvl from Department where Id = 2 union all select d.Id,d.
python編寫爬蟲獲取區域程式碼-遞迴獲取所有子頁面
上一篇文章用htmlparser寫了一個java的獲取區域的爬蟲,覺得太笨重。發現python也可以實現這個功能。 這裡就簡單寫一個用python3寫的小爬蟲例子 功能目標:對指定網站的所有區域資訊進行篩選,並儲存到文字中 思路:1、定義一個佇列,初始向佇列中put一個地址
T-SQL 語句——CTE 遞迴獲取當前使用者及其所有下級使用者
CREATE TABLE #t( Id INT NOT NULL PRIMARY KEY IDENTITY, Name NVARCHAR(20) NOT NULL, ParentId INT NU
js遞迴獲取某個父節點下面的所有子節點
本次的工作主要是計算節點橙色部分標記的子節點數量,沒有橙色部分的節點,只是隱藏了橙色部分 json資料格式類似這種: { "name": "aaa", "Children": [ { "name": "aaa",
js原生遞迴獲取一個節點的所有父級節點
<!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title></title> </head>
Mysql遞迴獲取某個父節點下面的所有子節點和子節點上的所有父節點
在MySQL中自定義函式來實現遞迴獲取所有子節點,該方式的優點是可以減少java程式碼量,缺點是:1.不好維護;2.拼接的欄位太長的時候,自定義函式的返回值可能容量不夠,此時可以定義為text等大容量型別;3:show variables like 'group_concat_max_len'&nb
java遞迴獲取某個父節點下面的所有子節點
一.舉個栗子 1.menu實體類 package com.dafy.insureagent.bean; public class Menu { private String id; private String name; private String pid; p
遞迴獲取下級目錄
public class ProductCategory { /// <summary> /// ID /// </summa
遞迴獲取指定目錄下所有的指定格式的檔案
遞迴獲取目錄下所有的txt結尾的檔案的絕對路徑 package com; import java.io.File; /* * 把g:\java\JavaSE目錄下所有的txt結尾的檔案的絕對
php遞歸刪除所有文件
log bsp class light dir func return 文件 readdir function del_file($dir) { if (@rmdir($dir)==false && is_dir($dir)) { if ($dp
(3).遞歸獲取所有頁碼
一個 name date ges 不想 則表達式 字符串 limit 我們 # -*- coding: utf-8 -*- import scrapy class GetChoutiSpider(scrapy.Spider): name = ‘get_chou
php 遞迴函式的三種實現方式 php利用遞迴函式實現無限級分類
遞迴函式是我們常用到的一類函式,最基本的特點是函式自身呼叫自身,但必須在呼叫自身前有條件判斷,否則無限無限呼叫下去。實現遞迴函式可以採取什麼方式呢?本文列出了三種基本方式。理解其原來需要一定的基礎知識水品,包括對全域性變數,引用,靜態變數的理解,也需對他們的作用範圍有所理解。遞迴函式也是解決無限級分類的一個很
php遞迴實現一維陣列轉為指定樹狀結構 --- 省市區處理
### 這兩天腦殼痛,一時短路,想不到準備利用遞迴實現這個需求,最後還是要請教同事,回來自己在實現了一遍,並記錄下來 ### 原資料: // { // 廣東省: { // 廣州市: [ // "天河區", // "從化區", // "增城區" // ], // 深
PHP 遞迴,回撥函式
遞迴: //回撥函式 把一個函式的名字以字串形式傳到另一個函式中,按變數函式的使用方法使用這個函式 function jia($num1,$num2){ return $num1 + $num2; } function ha($a){
SQL Server 利用WITH AS遞迴獲取層級關係資料
WITH AS短語,也叫做子查詢部分(subquery factoring),在SQL Server 2005中提供了一種解決方案,這就是公用表表達式(CTE),使用CTE,可以使SQL語句的可維護性,同時,CTE要比表變數的效率高得多。 下面是CTE的語法: