利用php遞歸實(shí)現(xiàn)無(wú)限分類 格式化數(shù)組的詳解
更新時(shí)間:2013年06月08日 16:54:05 作者:
本篇文章是對(duì)使用php遞歸實(shí)現(xiàn)無(wú)限分類 格式化數(shù)組進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
我們要做一個(gè)商品的無(wú)限分類
首先數(shù)據(jù)庫(kù)字段為:
id ----------商品主鍵id
fid ---------- 商品父id
name ---------- 商品名
最后輸出的數(shù)組格式為
<PRE class=php name="code"><PRE class=php name="code">array(
0=>array(
'id'=>1,
'fid'=>0,
'name'=>'法國(guó)貨'
'child'=>array(
0=>array(
'id'=>12,
'fid'=>1,
'name'=>'香水'
'child'=>array(
0=>array(
'id'=>34,
'fid'=>12,
'name'=>'女用香水'
)
)
),
1=>array(
'id'=>13,
'fid'=>1,
'name'=>'筆記本'
'child'=>NUll
)
)
),
1=>array(), //格式同上我就不再重復(fù)寫了 沒(méi)什么意義
2=>array()
)</PRE><BR>
<PRE></PRE>
<PRE></PRE>
php代碼:
<P></P>
<P></P>
<PRE class=php name="code"><?php
//數(shù)據(jù)庫(kù)我用的mysql PDO 但是整個(gè)思路又是一樣的
$conn=mysql_connect('localhost','root','123');
if(mysql_errno()){
printf('連接失敗'.mysql_error());
}
mysql_select_db('edeng');
mysql_set_charset('utf8');
/*
*遞歸函數(shù)
*@param id 要查詢fid=$id的所有子類 這里將$id的默認(rèn)值為設(shè)為0 是因?yàn)槲以跀?shù)據(jù)庫(kù)中將最頂層的類別的fid設(shè)置為0
*/
function get_array($id=0){
$sql="select id,fid,cname from e_cat where fid= $id";
$result=mysql_query($sql);
$arr=array();
if($result && mysql_affected_rows()){
while($rows=mysql_fetch_assoc($result)){
$rows['child']=get_array($rows['id']);
$arr[] = $rows;
}
return $arr;
}
}
echo '<pre>';
$result = get_array();
print_r($result);
</PRE><BR>
<BR>
<P></P>
<P> </P>
<P>函數(shù)首先查詢出所有fid為0的類</P>
<P>通過(guò)while逐個(gè)循環(huán)進(jìn)行回調(diào)查找fid為當(dāng)前類的id的子類</P>
<P><BR>
</P>
<P><BR>
</P>
<BR>
<BR>
<PRE></PRE>
</PRE>
首先數(shù)據(jù)庫(kù)字段為:
id ----------商品主鍵id
fid ---------- 商品父id
name ---------- 商品名
最后輸出的數(shù)組格式為
復(fù)制代碼 代碼如下:
<PRE class=php name="code"><PRE class=php name="code">array(
0=>array(
'id'=>1,
'fid'=>0,
'name'=>'法國(guó)貨'
'child'=>array(
0=>array(
'id'=>12,
'fid'=>1,
'name'=>'香水'
'child'=>array(
0=>array(
'id'=>34,
'fid'=>12,
'name'=>'女用香水'
)
)
),
1=>array(
'id'=>13,
'fid'=>1,
'name'=>'筆記本'
'child'=>NUll
)
)
),
1=>array(), //格式同上我就不再重復(fù)寫了 沒(méi)什么意義
2=>array()
)</PRE><BR>
<PRE></PRE>
<PRE></PRE>
php代碼:
<P></P>
<P></P>
<PRE class=php name="code"><?php
//數(shù)據(jù)庫(kù)我用的mysql PDO 但是整個(gè)思路又是一樣的
$conn=mysql_connect('localhost','root','123');
if(mysql_errno()){
printf('連接失敗'.mysql_error());
}
mysql_select_db('edeng');
mysql_set_charset('utf8');
/*
*遞歸函數(shù)
*@param id 要查詢fid=$id的所有子類 這里將$id的默認(rèn)值為設(shè)為0 是因?yàn)槲以跀?shù)據(jù)庫(kù)中將最頂層的類別的fid設(shè)置為0
*/
function get_array($id=0){
$sql="select id,fid,cname from e_cat where fid= $id";
$result=mysql_query($sql);
$arr=array();
if($result && mysql_affected_rows()){
while($rows=mysql_fetch_assoc($result)){
$rows['child']=get_array($rows['id']);
$arr[] = $rows;
}
return $arr;
}
}
echo '<pre>';
$result = get_array();
print_r($result);
</PRE><BR>
<BR>
<P></P>
<P> </P>
<P>函數(shù)首先查詢出所有fid為0的類</P>
<P>通過(guò)while逐個(gè)循環(huán)進(jìn)行回調(diào)查找fid為當(dāng)前類的id的子類</P>
<P><BR>
</P>
<P><BR>
</P>
<BR>
<BR>
<PRE></PRE>
</PRE>
您可能感興趣的文章:
- php獲取json數(shù)據(jù)所有的節(jié)點(diǎn)路徑
- PHP往XML中添加節(jié)點(diǎn)的方法
- PHP遍歷XML文檔所有節(jié)點(diǎn)的方法
- PHP 循環(huán)刪除無(wú)限分類子節(jié)點(diǎn)的實(shí)現(xiàn)代碼
- PHP+Mysql樹型結(jié)構(gòu)(無(wú)限分類)數(shù)據(jù)庫(kù)設(shè)計(jì)的2種方式實(shí)例
- PHP無(wú)限分類(樹形類)
- thinkphp實(shí)現(xiàn)無(wú)限分類(使用遞歸)
- php+mysql實(shí)現(xiàn)無(wú)限分類實(shí)例詳解
- PHP無(wú)限分類(樹形類)的深入分析
- 解析thinkphp的左右值無(wú)限分類
- PHP帶節(jié)點(diǎn)操作的無(wú)限分類實(shí)現(xiàn)方法詳解
相關(guān)文章
php獲取網(wǎng)頁(yè)請(qǐng)求狀態(tài)程序示例
對(duì)于網(wǎng)頁(yè)返回狀態(tài)代碼多數(shù)情況下我們的查看方法就是使用站長(zhǎng)工具或ff瀏覽器等來(lái)查看,極少有人想到自己寫一個(gè)查看狀態(tài)代碼的功能,本文就此簡(jiǎn)述php獲取網(wǎng)頁(yè)請(qǐng)求狀態(tài)程序示例,需要的朋友可以參考下2014-06-06解決文件名解壓后亂碼的問(wèn)題 將文件名進(jìn)行轉(zhuǎn)碼的代碼
中文win32下,文件名使用GBK編碼 Linux下,文件名使用UTF-8編碼 解決文件名解壓后亂碼的問(wèn)題,使用將文件名進(jìn)行轉(zhuǎn)碼2012-01-01php防注入,表單提交值轉(zhuǎn)義的實(shí)現(xiàn)詳解
本篇文章是對(duì)php防注入,表單提交值轉(zhuǎn)義的實(shí)現(xiàn)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06php抽象類和接口知識(shí)點(diǎn)整理總結(jié)
這篇文章主要介紹了php抽象類和接口知識(shí)點(diǎn),整理總結(jié)了php抽象類與接口的概念、原理、操作技巧及相關(guān)使用注意事項(xiàng),需要的朋友可以參考下2019-08-08PHP實(shí)現(xiàn)通過(guò)正則表達(dá)式替換回調(diào)的內(nèi)容標(biāo)簽
這篇文章主要介紹了PHP實(shí)現(xiàn)通過(guò)正則表達(dá)式替換回調(diào)的內(nèi)容標(biāo)簽的方法,涉及php正則匹配與替換的相關(guān)技巧,需要的朋友可以參考下2015-06-06