ホームページ > バックエンド開発 > PHPチュートリアル > PHP 再帰的無限分類 [事前順序走査計算]、任意のノード上のすべての子を取得します

PHP 再帰的無限分類 [事前順序走査計算]、任意のノード上のすべての子を取得します

WBOY
リリース: 2016-06-13 13:05:16
オリジナル
1005 人が閲覧しました

PHP 再帰的無限分類 [事前順序走査計算]、任意のノード

の下にあるすべての子を取得します

/**

* 再帰的無限分類 [事前順序走査計算]、任意のノードの下にあるすべての子を取得します

* @param 配列 $arrCate ソートする配列

* @param int $parent_id 親ノード

* @param int $level レベル番号

* @return 配列 $arrTree ソート配列

*/

関数 getMenuTree($arrCat, $parent_id = 0, $level = 0)

{

静的 $arrTree = 配列(); //グローバルの代わりに静的を使用します

if( ($arrCat)) 戻る FALSE;

$level++;

foreach( $arrCat as $key => $value)

{

if( $value['parent_id' ] == $parent_id)

{

$value[ 'レベル'] = $level;

$arrTree[] = $value;

解除( $arrCat[$key]); //注销当前节量据,减少已免用遍历

getMenuTree($arrCat, $value[ 'id' ]、 $level);

}

}

戻る $arrTree;

}



/**

* テストデータ

*/

$arrCate = array( //ソート対象の配列

(
'id'=>1, '名前' =>'一番上の列 1' 'parent_id'=>0)、 (
'id'=>2, '名前' =>'上の列 2' 'parent_id'=>0)、 ( 'id'=>3, '名前'
=>'列 3' , 'parent_id'=>1), ( 'id'=>4, '名前' =>'列 4' ,
'parent_id'=>3),(
'id'=>5, '名前' =>'列 5' , 'parent_id'=>4), ( 'id'=>6, '名前'
=>'列 6' , 'parent_id'=>2), ( 'id'=>7, '名前' =>'列 7' ,
'parent_id'=>6),(
'id'=>8, '名前' =>'列 8' , 'parent_id'=>6), ( 'id'=>9, '名前'
=>'列 9' , 'parent_id'=>7), ); header('Content-type: text/html; charset=utf-8');
//utf-8 エンコーディングを設定します
エコー
'
'<span style="font-family:Courier New; font-size:12px"><span style="font-size:10pt"></span></span>;<span style="font-family:Courier New; font-size:12px; color:#0000C0"><span style="font-size:10pt"></span></span>
<span style="font-family:Courier New; font-size:12px"><span style="font-size:10pt"></span></span>print_r(getMenuTree($arrCate, 0, 0));<span></span><span style="font-family:Courier New; font-size:12px; color:#557F5F"><span style="font-size:10pt">
</span></span></span><div align="left" >エコー<span style="font-family:'Courier New'"><span style="font-family:Courier New; font-size:12px; color:#7F0055"><span style="font-size:10pt"><strong> </strong></span></span>'
' ;
?>
123baby.net (www.123baby.net)
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート