Perbincangan ini memfokuskan pada mendapatkan semula struktur data hierarki daripada pangkalan data dan menukarnya menjadi tatasusunan berbilang dimensi dalam satu pertanyaan. Matlamatnya adalah untuk mendapatkan tatasusunan yang mewakili struktur pokok data.
Untuk mengekstrak struktur pokok daripada pangkalan data, jadual penutupan biasanya digunakan. Jadual penutupan merekodkan perhubungan antara nenek moyang dan keturunan dalam hierarki, membolehkan pertanyaan yang cekap bagi keturunan.
Memandangkan kunci utama nod, menanyakan keturunannya menggunakan SQL boleh dicapai menggunakan langkah berikut:
Hasil SQL kemudiannya diproses mengikut cara berikut:
Dalam PHP, menggunakan Rangka Kerja Zend, kod berikut menunjukkan proses:
// Get taxonomy table instance $tax = new Taxonomy(); // Fetch tree starting at Rodentia (id 180130) to a depth of 2 $tree = $tax->fetchTree(180130, 2); // Dump the array var_export($tree->toArrayDeep());
Output ialah tatasusunan berbilang dimensi yang mewakili struktur pokok data, seperti:
array ( 'tsn' => '180130', 'completename' => 'Rodentia', '_parent' => '179925', '_children' => [ // Child rows... ], )
Atas ialah kandungan terperinci Bagaimanakah saya boleh menukar hasil pangkalan data kepada tatasusunan berbilang dimensi untuk mewakili struktur data hierarki?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!