Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Fungsi Rekursif Membina Susunan Berbilang Dimensi daripada Hasil Pangkalan Data Rata?

Bagaimanakah Fungsi Rekursif Membina Susunan Berbilang Dimensi daripada Hasil Pangkalan Data Rata?

Linda Hamilton
Lepaskan: 2024-12-30 06:15:12
asal
641 orang telah melayarinya

How Can a Recursive Function Build a Multidimensional Array from Flat Database Results?

Menjana Tatasusunan Berbilang Dimensi daripada Hasil Pangkalan Data Menggunakan Fungsi Rekursif

Untuk menjana tatasusunan bersarang yang mewakili data hierarki seperti halaman atau kategori, fungsi rekursif sering bekerja. Matlamatnya ialah untuk mengambil tatasusunan rata rekod pangkalan data dan mengubahnya menjadi tatasusunan berstruktur yang mencerminkan perhubungan ibu bapa-anak.

Fungsi Rekursif untuk Pembinaan Pokok

Perkara berikut fungsi, buildTree, mencapai tugas ini:

def buildTree(elements, parentId=0):
    branch = []
    for element in elements:
        if element['parent_id'] == parentId:
            children = buildTree(elements, element['id'])
            if children:
                element['children'] = children
            branch.append(element)
    return branch
Salin selepas log masuk

Bagaimana Ia Berfungsi

  1. Inisialisasikan Cawangan: Untuk ID induk yang diberikan, buat senarai cawangan kosong untuk menyimpan elemen anak.
  2. Lelaran Lebih Elemen : Gelung melalui semua elemen dalam tatasusunan rata.
  3. Kenal pasti Kanak-kanak: Jika parent_id elemen sepadan dengan ID induk semasa, ia adalah anak kepada cawangan.
  4. Recurse untuk Kanak-kanak: Panggil fungsi secara rekursif untuk anak yang dikenal pasti, cari subnya -kanak-kanak.
  5. Tambahkan pada Cawangan: Tambahkan elemen anak dengannya anak kecil (jika ada) ke senarai cawangan.
  6. Cawangan Kembali: Setelah semua kanak-kanak diproses, kembalikan senarai cawangan yang diisi.

Contoh Penggunaan

Untuk memproses rekod pangkalan data anda menjadi pepohon hierarki, gunakan:

tree = buildTree(database_result)
Salin selepas log masuk

Pembolehubah pokok kini akan mengandungi tatasusunan bersarang yang mewakili struktur hierarki halaman atau kategori.

Atas ialah kandungan terperinci Bagaimanakah Fungsi Rekursif Membina Susunan Berbilang Dimensi daripada Hasil Pangkalan Data Rata?. 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