Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Menukar Hubungan Ibu Bapa-Anak menjadi Pokok Hierarki dalam PHP?

Bagaimana untuk Menukar Hubungan Ibu Bapa-Anak menjadi Pokok Hierarki dalam PHP?

Linda Hamilton
Lepaskan: 2024-12-26 09:57:10
asal
412 orang telah melayarinya

How to Convert Parent-Child Relationships into Hierarchical Trees in PHP?

Menukar Perhubungan Ibu Bapa-Anak kepada Pokok Hierarki

Dalam pengaturcaraan, adalah perlu untuk menukar satu siri perhubungan ibu bapa-anak kepada struktur pokok hierarki. Tugasan ini boleh dicapai dalam PHP menggunakan pendekatan rekursif.

Contoh Data:

Pertimbangkan set perhubungan ibu bapa-anak berikut:

Child : Parent
H : G
F : G
G : D
E : D
A : E
B : C
C : E
D : NULL
Salin selepas log masuk

Berubah menjadi Pokok Hierarki:

Untuk mengubah data ini ke dalam struktur pepohon hierarki, kami mencipta dua fungsi PHP:

  • parseTree($tree, $root): Fungsi ini menghuraikan pasangan anak-ibu bapa dan membina pepohon secara rekursif.
  • printTree($tree): Fungsi ini melintasi pokok dan mencetaknya sebagai senarai tidak tertib.

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

printTree Fungsi:

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 menggunakan fungsi ini, mula-mula mulakan tatasusunan pasangan anak-ibu bapa. Kemudian panggil parseTree dengan tatasusunan dan printTree dengan pokok yang terhasil:

$tree = array(
    'H' => 'G',
    'F' => 'G',
    'G' => 'D',
    'E' => 'D',
    'A' => 'E',
    'B' => 'C',
    'C' => 'E',
    'D' => null
);

$result = parseTree($tree);
printTree($result);
Salin selepas log masuk

Hasil:

Output akan menjadi senarai tidak tertib yang mewakili pokok hierarki:

<ul>
<li>D
<ul>
<li>G
<ul>
<li>H</li>
<li>F</li>
</ul>
</li>
<li>E
<ul>
<li>A</li>
<li>C
<ul>
<li>B</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menukar Hubungan Ibu Bapa-Anak menjadi Pokok Hierarki dalam PHP?. 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