私は、親、子供、子供たちの子供たち、子供たちの子供たちの子供たちなどを配置する配列を持っています。ただし、各レベルを書き出すことなく、同じ数のレベルでそれを行う方法を理解できないようです。
最初に今私は持っています
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
)
)
)
)
)
);
しかし、10億のforeachループを書き出さずに、その方法を理解することはできないようです。
$ iは、id、pid(親ID)、名前、および重みの4つの行です。