PHP無限級分類實現(遞迴 非遞迴)

2021-08-15 11:38:39 字數 1982 閱讀 5717

<?php  

/*** created by phpstorm.

* user: qishou

* date: 15-8-2

* time: 上午12:00

*///準備陣列,代替從資料庫中檢索出的資料(共有三個必須欄位id,name,pid)

header("content-type:text/html;charset=utf-8"

);  

$categories

= array

(  array

('id'

=>1,

'name'

=>

'電腦'

,'pid'

=>0),  

array

('id'

=>2,

'name'

=>

'手機'

,'pid'

=>0),  

array

('id'

=>3,

'name'

=>

'筆記本'

,'pid'

=>1),  

array

('id'

=>4,

'name'

=>

'台式電腦'

,'pid'

=>1),  

array

('id'

=>5,

'name'

=>

'智慧型機'

,'pid'

=>2),  

array

('id'

=>6,

'name'

=>

'功能機'

,'pid'

=>2),  

array

('id'

=>7,

'name'

=>

'超級本'

,'pid'

=>3),  

array

('id'

=>8,

'name'

=>

'遊戲本'

,'pid'

=>3),  

);  

/*********************==非遞迴實現********************====*/

$tree

= array

();  

//第一步,將分類id作為陣列key,並建立children單元

foreach

($categories

as$category

)  //第二步,利用引用,將每個分類新增到父類children陣列中,這樣一次遍歷即可形成樹形結構。

foreach

($tree

as$key

=>

$item

)  }  

}  第三步,刪除無用的非根節點資料

foreach

($tree

as$key

=>

$category

)  }  

print_r($tree

);  

/*********************==遞迴實現********************====*/

$tree

= $categories

;  function

get_attr($a,

$pid

)  $tree

= $v

;                           

//將記錄存入新陣列

}  }  

return

$tree

;                                  

//返回新陣列

}  echo""

;  print_r(get_attr($tree

,0));  

PHP無限級分類實現(遞迴 非遞迴)

created by phpstorm.user qishou date 15 8 2 time 上午12 00 準備陣列,代替從資料庫中檢索出的資料 共有三個必須欄位id,name,pid header content type text html charset utf 8 categories...

PHP無限級分類實現(遞迴 非遞迴)

created by phpstorm.user qishou date 15 8 2 time 上午12 00 準備陣列,代替從資料庫中檢索出的資料 共有三個必須欄位id,name,pid header content type text html charset utf 8 categories...

PHP遞迴實現無限級分類

在一些複雜的系統中,要求對資訊欄目進行無限級的分類,以增強系統的靈活性。那麼php是如何實現無限級分類的呢?我們在本文中使用遞迴演算法並結合mysql資料表實現無限級分類。在一些複雜的系統中,要求對資訊欄目進行無限級的分類,以增強系統的靈活性。那麼php是如何實現無限級分類的呢?我們在本文中使用遞迴...