1. 程式人生 > >php無限極分類

php無限極分類

str 簡單 pri [] code images 海澱區 spa val

 1 $arr = array(
 2     0=>array(
 3         cid=>1,
 4         pid=>0,
 5         name=>亞洲,
 6     ),
 7     1=>array(
 8         cid=>2,
 9         pid=>0,
10         name=>北美洲,
11     ),
12     2=>array(
13         cid=>3,
14         pid=>1,
15         
name=>中國, 16 ), 17 3=>array( 18 cid=>4, 19 pid=>2, 20 name=>美國, 21 ), 22 4=>array( 23 cid=>5, 24 pid=>3, 25 name=>北京, 26 ), 27 5=>array( 28 cid=>6, 29 pid=>3
, 30 name=>河北, 31 ), 32 6=>array( 33 cid=>7, 34 pid=>5, 35 name=>東城區, 36 ), 37 7=>array( 38 cid=>8, 39 pid=>5, 40 name=>海澱區, 41 ), 42 );

技術分享

 1 private function GetTree($arr,$pid,$step
){ 2 global $tree; 3 foreach($arr as $key=>$val) { 4 if($val[‘pid‘] == $pid) { 5 $flg = str_repeat(‘└―‘,$step); 6 $val[‘name‘] = $flg.$val[‘name‘]; 7 $tree[] = $val; 8 $this->GetTree($arr , $val[‘cid‘] ,$step+1); 9 } 10 } 11 return $tree; 12 }

然後我們只需要寫一個調用的代碼就好

$newarr = $this->GetTree($arr, 0, 0);

這樣看上去是不是很簡單?

php無限極分類