php的無限極分類怎么實現(xiàn)
- 來源:縱橫數(shù)據(jù)
- 作者:中橫科技
- 時間:2017/11/16 14:24:40
- 類別:新聞資訊
每一個無限分類都需要記錄它的父級id,當(dāng)為頂級分類時,父級id為0.這樣無論哪個分類都可以通過父級id一層 層的去查明它所有的父級,以便清楚知道它所屬哪種分類,層級深度為多少,無限分類在實際開發(fā)中非常常用,無限分類在面試中也會常被問到
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | include PHP /* 使用的是三種遞歸中的一種 & /* include ( 'Catecontroller.php' ); //引入連接數(shù)據(jù)庫文件 function getList( $pid = 0, & $result = array (), $spac = 0) { $spac = $spac + 2; //標(biāo)題前空格重復(fù)的次數(shù) $sql = "SELECT * FROM cate WHERE pid= $pid" ; //根據(jù)父id查找數(shù)據(jù) $res = mysql_query( $sql ); //發(fā)送sql語句 while ( $row = mysql_fetch_assoc( $res )) { //判斷$row里的值是否為空然后再循環(huán) $row [ 'cate_name' ] = str_repeat ( ' ' , $spac ). '|--' . $row [ 'cate_name' ]; //str_repeat 重復(fù)括號里的字符串,后面跟的是次數(shù) $result [] = $row ; //把數(shù)組賦給 $result getList( $row [ 'id' ], $result , $spac ); //遞歸調(diào)用,自己調(diào)用自己 這個括號里的參數(shù)和上面getList($pid=0...)是一樣的$row['id']==$pid=0; } return $result ; //把結(jié)果返回出去 } $rs = getList(); //使用方法 var_dump( $rs ); //打印方法結(jié)果 |
以上無限分類用的是遞歸算法,遞歸算法簡單的解釋就是自己調(diào)用自己。
聲明:文章來自網(wǎng)絡(luò)轉(zhuǎn)載,若無意中有侵犯您權(quán)益的信息,請聯(lián)系我們,我們會在
第一時間刪除!