Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menjana Pokok HTML Hierarki daripada Hubungan Ibu Bapa-Anak?

Bagaimana untuk Menjana Pokok HTML Hierarki daripada Hubungan Ibu Bapa-Anak?

Linda Hamilton
Linda Hamiltonasal
2024-12-29 19:42:15433semak imbas

How to Generate a Hierarchical HTML Tree from Parent-Child Relationships?

Penjanaan Pokok Hierarki daripada Hubungan Ibu Bapa-Anak

Cabaran:

Tukar koleksi nama-nama induk berpasangan ke dalam struktur pokok hierarki. Matlamatnya ialah untuk menjana senarai tidak tertib HTML bersarang (

    ) yang mewakili perhubungan anak-ibu bapa.

    Pendekatan Rekursif:

    Penyelesaian menggunakan dua fungsi rekursif. Fungsi pertama, parseTree(), merentasi struktur pokok dan membina pokok hierarki. Ia mencari anak langsung dari akar yang ditentukan dan menambahkannya pada pokok yang terhasil, menghuraikan anak setiap kanak-kanak secara rekursif.

    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;    
    }

    Fungsi kedua, printTree(), melintasi pokok yang dijana oleh parseTree() dan mencetak HTML yang sepadan tidak tersusun senarai.

    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>';
        }
    }

    Penggunaan:

    Untuk menukar pasangan nama-nama ibu bapa yang diberikan kepada struktur pepohon dan mencetak senarai tidak tertib HTML, anda akan memanggil fungsi ini sebagai berikut:

    $result = parseTree($tree);
    printTree($result);

    Digabungkan Fungsi:

    Untuk kecekapan yang lebih baik, anda boleh menggabungkan kedua-dua fungsi menjadi satu fungsi:

    function parseAndPrintTree($root, $tree) {
        $return = array();
        if(!is_null($tree) && count($tree) > 0) {
            echo '<ul>';
            foreach($tree as $child => $parent) {
                if($parent == $root) {                    
                    unset($tree[$child]);
                    echo '<li>'.$child;
                    parseAndPrintTree($child, $tree);
                    echo '</li>';
                }
            }
            echo '</ul>';
        }
    }

    Fungsi gabungan ini memudahkan proses penghuraian dan pencetakan serta mengurangkan bilangan lelaran diperlukan.

    Atas ialah kandungan terperinci Bagaimana untuk Menjana Pokok HTML Hierarki daripada Hubungan Ibu Bapa-Anak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn