Bagaimana untuk Memvisualisasikan Data Hierarki (Kategori) dalam PHP/MySQL?

DDD
Lepaskan: 2024-10-23 18:22:35
asal
522 orang telah melayarinya

How to Visualize Hierarchical Data (Categories) in PHP/MySQL?

Hierarki Kategori dalam PHP/MySQL

Apabila berurusan dengan data hierarki, seperti kategori, adalah penting untuk mewakilinya secara berstruktur. Satu pendekatan biasa ialah menggunakan model senarai bersebelahan, di mana setiap baris mewakili kategori dan mempunyai medan yang menunjukkan kategori induknya.

Mendapatkan Hierarki

Menggunakan PHP, anda boleh mendapatkan semula data kategori daripada MySQL dan membina hierarki dalam satu laluan. Kod di bawah, diilhamkan oleh "Struktur Tatasusunan One Pass Ibu Bapa-Anak" Nate Weiner:

<code class="php">$refs = [];
$list = [];

$sql = "SELECT category_id, parent_id, category_name FROM categories ORDER BY category_name";

foreach ($result as $row) {
    $ref = &$refs[$row['category_id']];

    $ref['parent_id'] = $row['parent_id'];
    $ref['category_name'] = $row['category_name'];

    if ($row['parent_id'] == 0) {
        $list[$row['category_id']] = &$ref;
    } else {
        $refs[$row['parent_id']]['children'][$row['category_id']] = &$ref;
    }
}</code>
Salin selepas log masuk

Gelung ini mengisi dua tatasusunan: $refs mengandungi rujukan kepada setiap kategori, manakala $list mengandungi kategori peringkat teratas (tanpa ibu bapa).

Mencipta Perwakilan Hierarki

Untuk mencipta perwakilan visual hierarki, anda boleh menggunakan fungsi rekursif untuk menjana senarai HTML bersarang. Pertimbangkan kod berikut:

<code class="php">function toUL(array $array) {
    $html = '<ul>' . PHP_EOL;

    foreach ($array as $value) {
        $html .= '<li>' . $value['category_name'];
        if (!empty($value['children'])) {
            $html .= toUL($value['children']);
        }
        $html .= '</li>' . PHP_EOL;
    }

    $html .= '</ul>' . PHP_EOL;

    return $html;
}</code>
Salin selepas log masuk

Fungsi ini mengambil tatasusunan kategori sebagai input dan membina senarai HTML bersarang secara rekursif. HTML yang terhasil kemudiannya boleh dikeluarkan untuk memaparkan hierarki kategori.

Atas ialah kandungan terperinci Bagaimana untuk Memvisualisasikan Data Hierarki (Kategori) dalam PHP/MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!