關於php迭代迴圈(無限分類)

2021-07-25 21:41:41 字數 1079 閱讀 3961

看了四年之前寫的關於迭代迴圈的一片文章,已經完全看不懂了,不是邏輯難,而是沒有注釋,格式不規範,各種不細心,而且沒有思路講解,讓人一頭霧水。好的介紹是什麼?讓人看注釋就能明白你要幹什麼,甚至都不用看**

先說思路吧:這是乙個關於分類的方法,無限分類。也就是說不知道有多少層關係,比如家居->廚房用具->炒鍋->蘇泊爾這是有四層,家居->門窗->大帝門窗這個有三層,也就是說層級不確定,那要求實現什麼樣的效果呢?要求列表顯示,帶有縮排。也就是

資料庫中的資料基本的是cate_id和parent_id,以及判斷該分類是否有子分類的has_child欄位

總體思路:這類資訊從資料庫中取出來按照分類排序的話肯定是多維陣列,因為是層級關係。但要實現我們想要的效果要搞成一維陣列。那麼問題來了,搞成一維的,如何縮排呢?再加乙個字段,表示縮排。那麼問題來了,現在實現想要的效果需要兩部。第一:從資料庫中讀取資料按照層級關係放進多維陣列中。第二:將多維陣列按照層級關係轉換成一維陣列,並帶有縮排標示。

這裡我只寫總體的**

<?php 

/** * created by phpstorm.

* user: zhuxinlei

* date: 14-6-10

* time: 下午10:24

*/class abc

public function build_tree($id = 0)

//遍歷父類(因為子類的話已經返回null),再次呼叫本方法,將重新獲得的子類資訊賦值給父類的child欄位

//唯一乙個有點思維難度的是不斷賦值給$child,$child不會被覆蓋嗎?不會,因為每次呼叫的都是新方法裡的變數

foreach ($child as $k => $val)

}return $child;

}public function rebuild_tree($tree)else

}return $tmp;

}public function getlist()

}?>

PHP無限分類

定義乙個陣列 或者從資料庫裡取出 data array array id 1,pid 0,cname 數碼 array id 2,pid 0,cname 家用電器 array id 3,pid 0,cname 電腦 array id 4,pid 0,cname 服裝 array id 5,pid 0...

PHP迭代與遞迴實現無限級分類

無限級分類是開發中常見的情況,因此本文對常見的無限極分類演算法進行總結歸納.1.迴圈迭代實現 arr 1 id 1,name 父1 father null 2 id 2,name 父2 father null 3 id 3,name 父3 father null 4 id 4,name 兒1 1 f...

PHP迭代與遞迴實現無限級分類

無限級分類是開發中常見的情況,因此本文對常見的無限極分類演算法進行總結歸納.1 arr 2 1 id 1,name 父1 father null 3 2 id 2,name 父2 father null 4 3 id 3,name 父3 father null 5 4 id 4,name 兒1 1 ...