php利用引用實現樹形數組

今天氣哥發了一個無限極分類,沒有用遞歸的例子。看了一下不錯。。

理解:1、創建$tree用於存儲頂級分類即$pid=0的分類引用。

           2、創建$list數組的引用數組$refer存儲$list引用

           3、循環$list數組:這裏做了兩件事,一個是過濾出頂級分類引用賦值給$tree,二是,判斷出非頂級分類,然後根據該分類的父級id在$refer中找到該分類的父級分類,把當前分類的引用賦值給當前父級分類的子數組。

           4、因爲傳遞過程都是用引用傳遞所以當循環結束所有分類都會被處理,返回的$tree就已經包含所有分類的樹形數組了。

追加一個關於引用比較有意思的問題:

解釋:其實就是第一次循環的時候$value的引用已經指向了$arr的最後一位。循環默認沒次循環指針加1。這時候如果用unset釋放變量就安全了。第二次循環$value沒有復位,所以纔會有如此結果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章