Bagaimana untuk Mendapatkan Semua Nod Kanak-kanak dalam Struktur Data Hierarki dengan PHP dan MySQL?

Linda Hamilton
Lepaskan: 2024-11-06 12:12:02
asal
367 orang telah melayarinya

How to Retrieve All Child Nodes in a Hierarchical Data Structure with PHP and MySQL?

Mendapatkan semula Data Hierarki dengan MySQL dan PHP

Mendapatkan semula data hierarki daripada pangkalan data boleh menjadi mencabar, terutamanya apabila menggunakan model data senarai bersebelahan. Soalan ini bertujuan untuk menangani isu ini dengan mencipta fungsi yang mengembalikan semua nod anak, cucu dan sebagainya, di bawah ibu bapa yang ditentukan.

Membina Pokok Hierarki

Pertama, kod PHP yang disediakan mendapatkan semula data daripada jadual MySQL dan menyimpannya dalam tatasusunan bersekutu. Model data senarai bersebelahan mewakili hierarki dengan menyimpan perhubungan ibu bapa-anak dalam satu lajur (iaitu, parent_id).

Untuk mengubah data ini menjadi struktur pepohon, fungsi buildtree() merentasi tatasusunan secara rekursif, mengaitkan setiap ID nod dengan datanya dan mencipta tatasusunan bersarang dengan kanak-kanak sebagai elemen.

Mengambil Nod Di Bawah Induk

Fungsi fetch_recursive() direka untuk mendapatkan semula semua nod anak di bawah induk tertentu. Ia berulang melalui struktur pokok, bermula pada ID induk yang ditentukan. Jika ID induk nod sepadan dengan ID induk yang ditentukan, ia menambahkan data nod pada tatasusunan hasil dan meneruskan untuk meneroka nod anak.

Contoh Penggunaan

Untuk menunjukkan fungsi, kod PHP berikut membina pepohon dan mendapatkan semula nod anak di bawah ID tertentu:

<?php
$data = [
    ['id' => 1, 'name' => 'Electronics', 'parent_id' => 0],
    ['id' => 2, 'name' => 'Televisions', 'parent_id' => 1],
    ['id' => 3, 'name' => 'Portable Electronics', 'parent_id' => 1],
    // ... additional data
];

$tree = buildtree($data);
$child_nodes = fetch_recursive($tree, 3);

foreach ($child_nodes as $node) {
    echo $node['name'] . '<br>';
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Semua Nod Kanak-kanak dalam Struktur Data Hierarki dengan PHP dan MySQL?. 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