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)
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31