我有,我有孩子的父母,子女,孩子,孩子的孩子兒童等等等等填充數組。然而,我似乎無法弄清楚如何在不需要編寫每個關卡的情況下儘可能多地創建關卡。PHP Array添加無論兒童?
首先現在我有
foreach($this->tree as $k=>$v) {
if($v['id'] == $i['pid']) {
// Add children
$this->tree[$k]['children'][] = array('name'=>$i['name'],'id'=>$i['id']);
break;
}else{
foreach($v['children'] as $kc=>$vc) {
$this->tree[$k]['children'][$kc]['children'][] = array('name'=>$i['name'],'id'=>$i['id']);
}
}
}
產生的東西,看起來像
Array
(
[0] => Array
(
[name] => Test
[id] => 1
[children] => Array
(
[0] => Array
(
[name] => Test2
[id] => 2
[children] => Array
(
[0] => Array
(
[name] => Test 3
[id] => 3
)
)
)
)
)
);
但我似乎無法弄清楚如何做的是沒有寫出一個十億foreach循環。
$ i就是一個四行,ID,PID(父ID),名稱和重量。
[遞歸函數的可能的複製產生從數據庫結果多維數組](http://stackoverflow.com/questions/8587341/recursive-function-to-generate-multidimensional-array-from-database-result)。遞歸,weeee〜! – deceze
'$ i'是怎麼樣的? – SuperSaiyan
通常對於那樣的樹結構,您將需要使用遞歸函數。 – robbrit