PHP memudahkan untuk melakukan pertanyaan tanpa had

PHPz
Lepaskan: 2023-04-11 16:18:02
asal
822 orang telah melayarinya

PHP ialah bahasa skrip sumber terbuka yang digunakan secara meluas dan merupakan bahagian yang sangat penting dalam pembangunan tapak web. Dalam kebanyakan pembangunan laman web, struktur klasifikasi tanpa had adalah keperluan yang sangat biasa. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melakukan pertanyaan tanpa had dengan mudah.

1. Apakah pengelasan tak terhingga?

Pengkelasan tak terhingga ialah kaedah pengelasan berstruktur pokok yang sangat biasa di tapak web. Contohnya, dalam tapak web pengelasan produk, jika anda perlu mengelaskan produk, anda boleh menggunakan pengelasan tanpa had. Kami boleh menyusun produk pada tahap tanpa had mengikut kategori besar, kategori kecil, subkategori, dsb.

2. Bagaimana untuk melaksanakan pengelasan tak terhingga?

1. Gunakan rekursi untuk melaksanakan

Dalam PHP, kita boleh menggunakan rekursi untuk melaksanakan pertanyaan pengelasan tak terhingga. Kaedah pelaksanaan khusus adalah seperti berikut:

<?php

function getSubCates($cateList, $parentId = 0, $level = 0) {
    $subs = array();     // 子分类列表
    foreach ($cateList as $cate) {
        if ($cate[&#39;parent_id&#39;] == $parentId) {
            $cate[&#39;level&#39;] = $level;    // 设置当前分类的级别
            $subs[] = $cate;
            $subs = array_merge($subs, getSubCates($cateList, $cate[&#39;id&#39;], $level + 1));
        }
    }
    return $subs;
}
Salin selepas log masuk

Dalam kod di atas, subkategori kategori disoal, dan kemudian subkategori setiap subkategori disoal secara rekursif, dan semua kategori diletakkan dalam tatasusunan secara hierarki .

2. Gunakan kaedah tindanan untuk mencapai

Selain menggunakan kaedah rekursif, anda juga boleh menggunakan kaedah tindanan untuk mencapai pengelasan tak terhingga. Kod untuk kaedah tindanan adalah seperti berikut:

<?php

function getSubCates($cateList, $rootId = 0) {
    $stack = array($rootId);
    $subs = array();
    while (!empty($stack)) {
        $parentId = array_pop($stack);
        foreach ($cateList as $key => $row) {
            if ($row['parent_id'] == $parentId) {
                $subs[] = $row;
                array_push($stack, $row['id']);
                unset($cateList[$key]);
            }
        }
    }
    return $subs;
}
Salin selepas log masuk

Kod di atas menggunakan struktur data tindanan, meletakkan nod akar ke dalam tindanan, menggelung keluar nod induk daripada tindanan dan mencari nod anaknya, dan pada masa yang sama menolak nod kanak-kanak ke dalam tindanan sehingga tindanan kosong.

3. Bagaimana untuk menggunakan pengelasan tak terhingga?

Menggunakan pengelasan tanpa had boleh memudahkan pembangunan kami. Kategori boleh disusun menjadi struktur pokok yang kemas, memudahkan pengguna menyemak imbas dan mencari sasaran. Berikut ialah contoh yang biasa digunakan:

<?php

$cateList = array(
    array(&#39;id&#39; => 1, 'name' => '电子产品', 'parent_id' => 0),
    array('id' => 2, 'name' => '手机', 'parent_id' => 1),
    array('id' => 3, 'name' => '笔记本电脑', 'parent_id' => 1),
    array('id' => 4, 'name' => '三星', 'parent_id' => 2),
    array('id' => 5, 'name' => '华为', 'parent_id' => 2),
    array('id' => 6, 'name' => 'ThinkPad', 'parent_id' => 3),
    array('id' => 7, 'name' => 'Apple', 'parent_id' => 3),
);

$subCates = getSubCates($cateList);
foreach ($subCates as $cate) {
    echo str_repeat('  ', $cate['level']) . $cate['name'];
    echo '<br/>';
}
Salin selepas log masuk

Dalam kod di atas, kami mula-mula mentakrifkan senarai kategori $cateList, kemudian panggil kaedah getSubCates($cateList) untuk mendapatkan semua kategori, dan akhirnya menggunakan gelung untuk mengeluarkan setiap Nama dan tahap pengelasan.

4. Ringkasan

Pengkelasan tak terhingga ialah kaedah pengelasan yang penting dan sangat praktikal. Dalam PHP, kita boleh menggunakan rekursi atau tindanan untuk melaksanakan pertanyaan tanpa had dengan mudah. Pengelasan tanpa had boleh membantu kami membina struktur pokok dengan cepat untuk memudahkan pertanyaan dan penyemakan imbas pengguna. Saya harap pengenalan di atas dapat membantu pembaca lebih memahami kaedah melaksanakan pertanyaan infinite dalam PHP.

Atas ialah kandungan terperinci PHP memudahkan untuk melakukan pertanyaan tanpa had. 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
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!