Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Membina Struktur Pokok Hierarki daripada Tatasusunan Rata dalam PHP?

Bagaimana untuk Membina Struktur Pokok Hierarki daripada Tatasusunan Rata dalam PHP?

Barbara Streisand
Lepaskan: 2024-11-27 18:33:15
asal
258 orang telah melayarinya

How to Build a Hierarchical Tree Structure from a Flat Array in PHP?

Membina Struktur Pokok daripada Susunan Rata dalam PHP

Masalah:

Anda ada tatasusunan rata yang terdiri daripada elemen dengan medan 'id' dan 'parent_id', di mana setiap elemen mungkin mempunyai paling banyak satu induk dan sifar atau lebih ramai kanak-kanak. Apabila 'parent_id' ialah 0, elemen tersebut ialah item peringkat akar. Matlamatnya adalah untuk menyusun semula tatasusunan rata ini menjadi pokok hierarki dengan perhubungan anak-ibubapa.

Penyelesaian:

Fungsi yang disediakan, buildTree(), melaksanakan tugas ini dengan berkesan dengan mengulangi tatasusunan input dan membina struktur pokok secara rekursif. Setiap elemen dalam pepohon output mengandungi ID, ID induk dan tatasusunan elemen anak.

Pelaksanaan:

function buildTree(array &$elements, $parentId = 0) {
    $branch = array();

    foreach ($elements as $element) {
        if ($element['parent_id'] == $parentId) {
            $children = buildTree($elements, $element['id']);
            if ($children) {
                $element['children'] = $children;
            }
            $branch[] = $element;
            unset($elements[$element['id']]);
        }
    }

    return $branch;
}
Salin selepas log masuk

'Nyahset' Panggilan:

Dalam kod di atas, panggilan unset() adalah penting untuk mengekalkan struktur hierarki. Ia mengalih keluar elemen yang diproses daripada tatasusunan input asal, memastikan elemen tidak diduplikasi dalam pepohon.

Contoh:

Pertimbangkan tatasusunan input yang disediakan:

[_319_] => [...],
[_320_] => [...],
[_321_] => [...],
[_322_] => [...],
[_323_] => [...],
[_324_] => [...],
[_325_] => [...]
Salin selepas log masuk

Selepas diproses, pokok keluaran mengekalkan induk-anak perhubungan:

[_319_] => [...],
[_320_] => [
    'id' => '_320_',
    'parent_id' => 0,
    'children' => [
        [_321_] => [...],
        [_325_] => [...]
    ]
],
[_323_] => [
    'id' => '_323_',
    'parent_id' => 0,
    'children' => [
        [_324_] => [...]
    ]
]
Salin selepas log masuk

Oleh itu, fungsi buildTree() membolehkan anda mengubah tatasusunan rata elemen dengan perhubungan induk-anak menjadi pepohon hierarki berstruktur dalam PHP.

Atas ialah kandungan terperinci Bagaimana untuk Membina Struktur Pokok Hierarki daripada Tatasusunan Rata 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