php 递归分销角色,PHP递归无限分类
我們面試程序開發(fā)的時(shí)候,經(jīng)常會(huì)被問到遞歸的問題。今天我們?cè)诒疚闹幸浴八夭幕鸬奶匦Х诸惐怼弊鳛檠菔?#xff0c;使用PHP遞歸結(jié)合Mysql實(shí)現(xiàn)無限級(jí)分類。
難易:初級(jí)
下載資源
下載積分:
50
積分
遞歸簡(jiǎn)單的說就是一段程序代碼的重復(fù)調(diào)用,當(dāng)把代碼寫到一個(gè)自定義函數(shù)中,將參數(shù)等變量保存,函數(shù)中重復(fù)調(diào)用函數(shù),直到達(dá)到某個(gè)條件才跳出,返回相應(yīng)的數(shù)據(jù)。
cats表: CREATE TABLE IF NOT EXISTS `cats` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`pid` int(11) DEFAULT '0',
`name` varchar(50) NOT NULL,
`ord` int(6) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=132 ;
INSERT INTO `cats` (`id`, `pid`, `name`, `ord`) VALUES
(1, 0, '特效分類', 1),
(2, 0, '難易程度', 2),
(3, 2, '入門級(jí)', 1),
(4, 2, '初級(jí)', 2),
(5, 2, '中級(jí)', 3),
(6, 2, '高級(jí)', 4),
(7, 1, '圖片代碼', 1),
(8, 1, '導(dǎo)航菜單', 2),
(9, 1, '選項(xiàng)卡/滑動(dòng)門', 3),
......
演示一:返回字符串 echo get_str(0, 0); //輸出無限級(jí)分類
function get_str($id = 0, $level = 0) {
global $str;
$sql = "select id,name from cats where pid= $id";
$result = mysql_query($sql); //查詢pid的子類的分類
if ($result && mysql_affected_rows()) {//如果有子類
$str .= '
- ';
$level++;
while ($row = mysql_fetch_array($result)) { //循環(huán)記錄集
$str .= "
" . $row['id'] . "--" . $row['name'] . $level . ""; //構(gòu)建字符串get_str($row['id'], $level); //調(diào)用get_str(),將記錄集中的id參數(shù)傳入函數(shù)中,繼續(xù)查詢下級(jí)
}
$str .= '
';}
return $str;
}
演示二:返回?cái)?shù)組 $list = get_array(0); //調(diào)用函數(shù)
print_r($list); //輸出數(shù)組
function get_array($id = 0) {
$sql = "select id,name from cats where pid= $id";
$result = mysql_query($sql); //查詢子類
$arr = array();
if ($result && mysql_affected_rows()) {//如果有子類
while ($rows = mysql_fetch_assoc($result)) { //循環(huán)記錄集
$rows['list'] = get_array($rows['id']); //調(diào)用函數(shù),傳入?yún)?shù),繼續(xù)查詢下級(jí)
$arr[] = $rows; //組合數(shù)組
}
return $arr;
}
}
總結(jié)
以上是生活随笔為你收集整理的php 递归分销角色,PHP递归无限分类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java学习(165):inetaddr
- 下一篇: basename php 中文,php