ホームページ > バックエンド開発 > PHPチュートリアル > 階層配列リストからツリー構造を効率的に構築するにはどうすればよいですか?

階層配列リストからツリー構造を効率的に構築するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-29 11:01:10
オリジナル
737 人が閲覧しました

How to Efficiently Build a Tree Structure from a Hierarchical Array List?

配列リストからツリー構造を構築する

階層関係を持つ項目の配列リストが与えられた場合、どうすればそれを効率的に変換できますか?入れ子になったツリー構造?

解決策:

複雑なデータベース最適化を使用せずにこの変換を達成するには、再帰関数を使用できます:

$arr = array(
  array('id' => 100, 'parentid' => 0, 'name' => 'a'),
  array('id' => 101, 'parentid' => 100, 'name' => 'a'),
  array('id' => 102, 'parentid' => 101, 'name' => 'a'),
  array('id' => 103, 'parentid' => 101, 'name' => 'a'),
);

$new = array();
foreach ($arr as $a) {
    $new[$a['parentid']][] = $a;
}
$tree = createTree($new, array($arr[0]));
print_r($tree);

function createTree(&$list, $parent){
    $tree = array();
    foreach ($parent as $k => $l){
        if(isset($list[$l['id']])){
            $l['children'] = createTree($list, $list[$l['id']]);
        }
        $tree[] = $l;
    } 
    return $tree;
}
ログイン後にコピー

このコード項目を入れ子の階層構造に配置し、項目間の親子関係を表します。結果のツリー構造は、print_r を使用して印刷できます。

再帰関数を利用することで、配列リストをツリー構造に効率的に変換でき、データのナビゲーションと整理が容易になります。

以上が階層配列リストからツリー構造を効率的に構築するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート