ホームページ  >  記事  >  バックエンド開発  >  PHP 再帰を使用して無限分類を実現する 書式設定された array_PHP チュートリアルの詳細な説明

PHP 再帰を使用して無限分類を実現する 書式設定された array_PHP チュートリアルの詳細な説明

WBOY
WBOYオリジナル
2016-07-21 15:07:311014ブラウズ

製品を無制限に分類したいと考えています
まず、データベースフィールドは次のとおりです:
id ----------製品主キーID
fid ----------製品親id
name ---------- 製品名
の最終的な出力配列形式は

コードをコピーします コードは次のとおりです:

< PRE class=php name="コード">array(<br> 0=>array(<br> 'id'=>1,<br> 'fid'=>0,<br> 'name '=>'フランス製品'<br> 'child'=>array(<br> 0=>array( <br> 'id'=>12,<br> 'fid'=>1,<br> 'name'=>' Perfume'<br> 'child'=> array(<br> 0=>array(<br> 'id'=>34,<br> 'fid'=>12,<br> 'name'=>'女性の香水'<br> )<br> )<br> ),<br> 1= &gt ;array(<br> 'id'=>13,<br> 'fid'=>1,<br> 'name'=>'Notebook'<br> 'child'=>NUll<br> )<br> )<br> ),<br> 1=&gt ;array(), //形式は上と同じなので、意味がないので書きません<br> 2=>array()<br>)</PRE&gt ;<BR><BR><PRE>gt;

gt;

php コード:

gt;


<?php<BR> //データベースには mysql PDO を使用しますが、全体の考え方は同じです<BR>$conn=mysql_connect('localhost','root',' 123');<BR>if(mysql_errno()){<BR> printf('接続に失敗しました'.mysql_error());<BR>}<BR>mysql_select_db('edeng');<BR>mysql_set_charset('utf8');<BR>/*<BR> *再帰関数<BR> *@param id fid=$id のすべてのサブクラスをクエリするには、ここに $id を指定します。データベースの最上位カテゴリの fid を 0 に設定したため、デフォルト値は 0 に設定されます<BR> */<BR>function get_array($ id=0){<BR> $sql="select id,fid,cname from e_cat where fid = $id";<BR> $result=mysql_query($sql);<BR> $arr=array();<BR> if($result && mysql_affected_rows ()){<BR> while($rows=mysql_fetch_assoc($result)){<BR><br> $ rows['child']=get_array($rows['id']);<br> $arr[] = $rows;<BR> }<BR> return $arr;<BR> }<BR>} <BR>echo '<pre class="brush:php;toolbar:false">';<br>$result = get_array();<br>print_r($result);<br>




< P>



この関数は、最初に fid 0


を使用してすべてのクラスをクエリし、while ループを 1 つずつ実行します。 1 つは、fid が現在のクラスの ID であるサブクラスを検索するためのものです








< BR>


gt;




http://www.bkjia.com/PHPjc/327545.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/327545.html技術記事製品を無限に分類したいと考えています。まず、データベース フィールドは次のとおりです。 id ----------product プライマリ キー ID fid ---------- product 親 ID name --- ----- --製品名の最終出力配列形式は複雑です...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。