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
Lepaskan: 2024-12-29 19:42:15
asal
424 orang telah melayarinya

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;    
    }
    Salin selepas log masuk

    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>';
        }
    }
    Salin selepas log masuk

    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);
    Salin selepas log masuk

    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>';
        }
    }
    Salin selepas log masuk

    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!

    sumber:php.cn
    Kenyataan Laman Web ini
    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
    Artikel terbaru oleh pengarang
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan