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
Linda Hamiltonasal
2024-12-30 06:15:12678semak imbas

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

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)

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!

Kenyataan:
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