Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Membina Susunan Berbilang Dimensi secara Rekursif daripada Hasil Pangkalan Data Rata?

Bagaimana untuk Membina Susunan Berbilang Dimensi secara Rekursif daripada Hasil Pangkalan Data Rata?

Patricia Arquette
Patricia Arquetteasal
2024-12-23 10:53:09546semak imbas

How to Recursively Build a Multidimensional Array from a Flat Database Result?

Fungsi Rekursif untuk Membina Tatasusunan Berbilang Dimensi daripada Hasil Pangkalan Data

Masalah:

Anda mencari fungsi rekursif yang mampu mengubah tatasusunan halaman dan kategori daripada hasil pangkalan data yang diratakan kepada tatasusunan bersarang dengan perhubungan hierarki berstruktur.

Penyelesaian:

Penyelesaian yang disediakan menawarkan pendekatan yang mudah dan generik:

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;
        }
    }

    return $branch;
}

Penjelasan :

Algoritma beroperasi sebagai berikut:

  1. Pelaksanaan Awal (ParentId = 0):

    • Pertimbangkan keseluruhan susunan elemen.
    • Mengenal pasti elemen dengan parent_id sama dengan 0 (root nod).
    • Panggil buildTree secara rekursif pada elemen tersebut untuk mencari anak mereka.
  2. Pelaksanaan Rekursif (ParentId != 0):

    • Pertimbangkan hanya elemen yang sepadan dengan yang ditentukan parent_id.
    • Panggil buildTree secara rekursif pada elemen tersebut untuk mencari anak mereka.
  3. Membina Hierarki:

    • Elemen yang dikenal pasti sebagai anak kepada ibu bapa semasa digabungkan ke dalam tatasusunan.
    • Tatasusunan ini diperuntukkan kepada sifat "anak" bagi elemen induk.
  4. Keputusan Pulangan:

    • Panggilan rekursif mengembalikan tatasusunan elemen anak untuk setiap peringkat hierarki.
    • Fungsi ini mencapai kemuncaknya dengan mengembalikan tatasusunan bersarang lengkap yang mewakili struktur hierarki.

Dengan menggunakan fungsi ini pada hasil pangkalan data anda, anda memperoleh susunan yang teratur tatasusunan dengan perhubungan hierarki berbutir, seperti yang ditunjukkan oleh output yang anda inginkan. Pendekatan ini serba boleh dan boleh digunakan pada kedua-dua halaman dan kategori.

Atas ialah kandungan terperinci Bagaimana untuk Membina Susunan Berbilang Dimensi secara Rekursif 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