ホームページ >バックエンド開発 >PHPチュートリアル >PHP で親子関係から階層ツリー構造を構築するにはどうすればよいですか?
親子関係からの階層ツリー構造の作成
親子関係から階層ツリー構造を構築することは、プログラミングにおける一般的なタスクです。これを実現するには、再帰的アプローチを使用して、データをネストされたユニットに効果的に編成できます。
PHP では、一連の親子ペアを階層ツリーに変換するには、解析と出力という 2 つの主要な機能が必要です。解析関数は、子と親のペアを系統的に走査して、階層データ構造を構築します。これに続いて、印刷関数はこの構造を、各リスト項目が子を表す、一連のネストされた HTML 順序なしリストに変換します。
例として、次の親子ペアを考えてみましょう:
Child : Parent H : G F : G G : D E : D A : E B : C C : E D : NULL
このデータを解析するには、parseTree 関数を定義します。
function parseTree($tree, $root = null) { $return = array(); foreach($tree as $child => $parent) { if($parent == $root) { unset($tree[$child]); $return[] = array( 'name' => $child, 'children' => parseTree($tree, $child) ); } } return empty($return) ? null : $return; }
次に、printTree 関数を定義します。解析された階層を HTML の順序なしリストに変換します。
function printTree($tree) { if(!is_null($tree) && count($tree) > 0) { echo '<ul>'; foreach($tree as $node) { echo '<li>'.$node['name']; printTree($node['children']); echo '</li>'; } echo '</ul>'; } }
これら 2 つの関数を組み合わせることで、子と親のペアを階層ツリー構造に変換できます。
以上がPHP で親子関係から階層ツリー構造を構築するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。