標籤:
public function getlist($pid = 0, &$result=array(), $spac = 0){
$spac += 2;
$list = M(‘liuyan‘)->where(‘pid=‘.$pid)->select();
foreach($list as $val){
$val[‘content‘] = str_repeat(‘‘,$spac).$val[‘content‘];
$result[] = $val;
$this->getlist($val[‘id‘], $result, $spac);
}
return $result;
} function genTree($items,$id=‘id‘,$pid=‘pid‘,$son = ‘children‘){ $tree = array(); //格式化的樹 $tmpMap = array(); //臨時扁平資料 foreach ($items as $item) { $tmpMap[$item[$id]] = $item; } foreach ($items as $item) { if (isset($tmpMap[$item[$pid]])) { $tmpMap[$item[$pid]][$son][] = &$tmpMap[$item[$id]]; } else { $tree[] = &$tmpMap[$item[$id]]; } } unset($tmpMap); return $tree;} $items1 = array( array(‘id‘ => 1, ‘pid‘ => 0, ‘name‘ => ‘一級11‘ ), array(‘id‘ => 11, ‘pid‘ => 0, ‘name‘ => ‘一級12‘ ), array(‘id‘ => 2, ‘pid‘ => 1, ‘name‘ => ‘二級21‘ ), array(‘id‘ => 10, ‘pid‘ => 11, ‘name‘ => ‘二級22‘ ), array(‘id‘ => 3, ‘pid‘ => 1, ‘name‘ => ‘二級23‘ ), array(‘id‘ => 12, ‘pid‘ => 11, ‘name‘ => ‘二級24‘ ), array(‘id‘ => 9, ‘pid‘ => 1, ‘name‘ => ‘二級25‘ ), array(‘id‘ => 14, ‘pid‘ => 1, ‘name‘ => ‘二級26‘ ), array(‘id‘ => 4, ‘pid‘ => 9, ‘name‘ => ‘三級31‘ ), array(‘id‘ => 6, ‘pid‘ => 9, ‘name‘ => ‘三級32‘ ), array(‘id‘ => 7, ‘pid‘ => 4, ‘name‘ => ‘四級41‘ ), array(‘id‘ => 8, ‘pid‘ => 4, ‘name‘ => ‘四級42‘ ), array(‘id‘ => 5, ‘pid‘ => 4, ‘name‘ => ‘四級43‘ ), array(‘id‘ => 13, ‘pid‘ => 4, ‘name‘ => ‘四級44‘ ), array(‘id‘ => 15, ‘pid‘ => 8, ‘name‘ => ‘五級51‘ ), array(‘id‘ => 16, ‘pid‘ => 8, ‘name‘ => ‘五級52‘ ), array(‘id‘ => 17, ‘pid‘ => 8, ‘name‘ => ‘五級53‘ ), array(‘id‘ => 18, ‘pid‘ => 16, ‘name‘ => ‘六級64‘ ),); var_dump(genTree($items1));
無限級分類