php樹-不需要遞迴的實現方法
/*** 建立父節點樹形陣列
* 引數
* $ar 陣列,鄰接列表方式組織的資料
* $id 陣列中作為主鍵的下標或關聯鍵名
* $pid 陣列中作為父鍵的下標或關聯鍵名
* 返回 多維陣列
**/function find_parent($ar, $id='id', $pid='pid')
} return $t;
}/**
* 建立子節點樹形陣列
* 引數
* $ar 陣列,鄰接列表方式組織的資料
* $id 陣列中作為主鍵的下標或關聯鍵名
* $pid 陣列中作為父鍵的下標或關聯鍵名
* 返回 多維陣列
**/function fihnedwinggnd_child($ar, $id='id', $pid='pid')
} return $t;
} $data = array(
array('id'=>1, 'parent'=>0, 'name'=>'祖父'),
array('id'=>2, 'parent'=>1, 'name'=>'父親'),
array('id'=>3, 'parent'=>1, 'name'=>'叔伯'),
array('id'=>4, 'parent'=>2, 'name'=>'自己'),
array('id'=>5, 'parent'=>4, 'name'=>'兒子'),
);$p = find_parent($data, 'id', 'parent');
$c = find_child($data, 'id', 'parent');
print_r ($c);
執行效果:
array
( [1] => array
([id] => 1
[parent] => 0
[name] => 祖父
[child] => array
([2] => array
([id] => 2
[par程式設計客棧ent] => 1
[name] => 父親
=> array
([4] => array
([id] => 4
[parent] => 2
[name] => 自己
[child] => array
([5] => array
([id] => 5
程式設計客棧 [parent] => 4
[name] => 兒子))
))
)[3] => array
([id] => 3
[parent] => 1
[name] => 叔伯))
)[2] => array
([id] => 2
[parent] => 1
[name] => 父親
[child] => array
([4] => array
([id] => 4
[parent] => 2
[name] => 自己
[child] => array
([5] => array
([id] => 5
[parent] => 4
[name] => 兒子))
))
)[3] => array
([id] => 3
[parent] => 1
[name] => 叔伯
)[4] => array
([id] => 4
[parent] => 2
[name] => 自己
[child] => array
([5] => array
([id] => 5
[parent] => 4
[name] => 兒子))
)[5] => array
([id] => 5
[parent] => 4
[name程式設計客棧] => 兒子))
本文標題: php樹-不需要遞迴的實現方法
本文位址:
決策樹python實現,,不需要掉包2
h.為了進行資料集的測試,需要知道每個測試集分類過後的標籤,因此使用find 方法,遞迴的找到每個枝杈上的葉子節點,葉子節點的value值就是當前的分類情況。因為在建立樹的時候已經將每個葉子節點的dim設定為了 1,因此只需要判斷tree.getdim是否為 1就可以知道是否為葉子節點,如果不是則分...
刪除不需要的檔案
一些不需要的 巨大的檔案或資料夾佔據了硬碟的空間,這並不少見。如果你試圖釋放計算機上的空間,那麼刪除不想要的巨大檔案效果最好。但首先你必須找到它們。編寫乙個程式,遍歷乙個目錄樹,查詢特別大的檔案或資料夾,比方說,超過100mb的檔案 回憶一下,要獲得檔案的大小,可以使用 os 模組的 os.path...
docker命令不需要敲sudo的方法
由於docker daemon需要繫結到主機的unix socket而不是普通的tcp埠,而unix socket的屬主為root使用者,所以其他使用者只有在命令前新增sudo選項才能執行相關操作。如果不想每次使用docker命令的時候還要額外的敲一下sudo,可以按照下面的方法配置一下。建立乙個d...