Rumah pembangunan bahagian belakang tutorial php 递归删除一个节点以及该节点下的所有节点示例_php技巧

递归删除一个节点以及该节点下的所有节点示例_php技巧

May 17, 2016 am 08:47 AM
nod

有的时候删除信息的时候,需要把这条信息下的所有的都删除,这个时候就需要递归删除了。下面是我在做部门管理中的删除部门功能的时候写的一段递归删除一个部门以及它的所有子部门的一段代码。仅供大家参考和自己以后备用。

下面是我的一段代码的展示:

复制代码 代码如下:

/*
* 修改一条部门信息
*/
function del($bumen_id){
$sql="select bumen_id from lxsm_bumen where topbumen_id=".$bumen_id; //查询以topbumen_id为$bumen_id的bumen_id
$delsql="delete from lxsm_bumen where bumen_id=".$bumen_id; //删除bumen_id为$bumen_id的部门信息
$xiaji_id=$this->DB->fetch_assoc($sql);
if($xiaji_id){
foreach($xiaji_id as $id){
$res=$this->del($id[bumen_id]);
}
}
$result=$this->DB->query($delsql);
if($result){
return true;
}
else{
return false;
}
}

注释:这里的topbumen_id是部门信息中的上级部门的id号,fetch_assoc()函数是自己已经封装好的函数,是把查询得到的所有内容返回成一个数组。

心得体会:这是自己第一次写递归算法,写得还很稚嫩,不管怎样功能是实现了。我感觉写递归方面的代码的时候,自己先画好一个树状结构,认清其结构后,根据自己想要得到的效果,先在脑子里模拟一步一步的执行。比如这里的删除,想要删除一个部门,就得删除自己并且查找以自己为上级部门的子部门有哪些,把子部门一个一个地遍历得到,这时候子部门的操作,就和它的上级部门的删除一样,需要删除自己并且查找它的子部门,这样一来就有个类似重复的操作,子部门的操作和上级部门的操作经历的步骤是一样的,因此在子部门的遍历中让它执行这个本身的函数。这样一来就形成了一个递归算法。
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Soal berat minimum dalam subpokok bermula dari nod X dan jarak paling banyak D Soal berat minimum dalam subpokok bermula dari nod X dan jarak paling banyak D Aug 25, 2023 am 11:25 AM

Apabila melakukan pengaturcaraan komputer, kadangkala adalah perlu untuk mencari berat minimum subpokok yang berasal dari nod tertentu, dengan syarat subpokok tidak boleh mengandungi nod yang lebih daripada unit D dari nod yang ditentukan. Masalah ini timbul dalam pelbagai bidang dan aplikasi, termasuk teori graf, algoritma berasaskan pokok, dan pengoptimuman rangkaian. Subpokok ialah subset struktur pokok yang lebih besar, dengan nod yang ditentukan berfungsi sebagai nod akar subpokok. Subpohon mengandungi semua keturunan nod akar dan tepi penghubungnya. Berat nod merujuk kepada nilai khusus yang diberikan kepada nod itu, yang boleh mewakili kepentingan, kepentingan atau metrik lain yang berkaitan. Dalam masalah ini, matlamatnya adalah untuk mencari berat minimum antara semua nod dalam subpokok sambil mengehadkan subpokok kepada nod yang paling banyak unit D dari nod akar. Dalam artikel berikut, kita akan menyelidiki kerumitan perlombongan pemberat minimum daripada subpokok

Bagaimana untuk melaksanakan fungsi salinan dan potong nod peta minda melalui Vue dan jsmind? Bagaimana untuk melaksanakan fungsi salinan dan potong nod peta minda melalui Vue dan jsmind? Aug 15, 2023 pm 05:57 PM

Bagaimana untuk melaksanakan fungsi salinan dan potong nod peta minda melalui Vue dan jsmind? Peta minda ialah alat pemikiran biasa yang boleh membantu kita menyusun pemikiran kita dan menyusun logik pemikiran kita. Fungsi salin dan potong nod adalah operasi yang biasa digunakan dalam peta minda, yang membolehkan kami menggunakan semula nod sedia ada dengan lebih mudah dan meningkatkan kecekapan organisasi berfikir. Dalam artikel ini, kami akan menggunakan dua alat Vue dan jsmind untuk melaksanakan fungsi salinan dan potong nod peta minda. Pertama, kita perlu memasang Vue dan jsmind dan buat

Apakah kaedah untuk memadam nod dalam js Apakah kaedah untuk memadam nod dalam js Sep 01, 2023 pm 05:00 PM

Kaedah untuk memadam nod dalam js ialah: 1. Kaedah removeChild() digunakan untuk mengeluarkan nod anak yang ditentukan daripada nod induk Ia memerlukan dua parameter Parameter pertama ialah nod anak untuk dipadamkan, dan parameter kedua ialah nod induk. 2. Kaedah parentNode.removeChild() boleh dipanggil terus melalui nod induk untuk memadamkan nod anak; Atribut innerHTML digunakan untuk memadam kandungan nod.

Cari laluan terpendek antara mana-mana dua nod menggunakan algoritma Floyd-Warshal Cari laluan terpendek antara mana-mana dua nod menggunakan algoritma Floyd-Warshal Sep 20, 2023 pm 02:21 PM

C++ mempunyai makro, yang ditakrifkan sebagai sekeping kod atau nilai yang dijangkakan, dan ia akan digunakan semula apabila pengguna memerlukannya. Algoritma Floyd-Walshall ialah proses mencari laluan terpendek antara semua pasangan bucu dalam graf berwajaran tertentu. Algoritma mengikut pendekatan pengaturcaraan dinamik untuk mencari graf berat minimum. Marilah kita memahami maksud algoritma Floyd-Walshall melalui rajah - ambil bucu 1 sebagai sumber dan bucu 4 sebagai destinasi dan cari laluan terpendek di antara mereka. Kami telah melihat bahawa terdapat dua laluan yang boleh disambungkan ke bucu sasaran 4. 1->4 – tepi mempunyai berat 51->8->3->4 – berat tepi (1+2+1) ialah 4. Dalam graf I yang diberikan, kita melihat tepi terkecil yang menghubungkan dua bucu. Jadi di sini puncaknya

Cara membuat, memadam, menambah dan menggantikan nod elemen dalam js (dengan contoh kod) Cara membuat, memadam, menambah dan menggantikan nod elemen dalam js (dengan contoh kod) Aug 06, 2022 pm 05:26 PM

Artikel ini terutamanya memperkenalkan cara membuat, memadam, menambah dan menggantikan nod elemen dalam js. Saya harap ia akan membantu rakan yang memerlukan!

Menyemak sama ada laluan antara dua nod dalam graf yang diberikan mewakili laluan terpendek Menyemak sama ada laluan antara dua nod dalam graf yang diberikan mewakili laluan terpendek Sep 07, 2023 pm 06:57 PM

Untuk menyemak sama ada laluan yang diberikan antara dua pusat graf mematuhi laluan terpendek, ini boleh dikira dengan membandingkan keseluruhan berat tepi sepanjang laluan yang diberikan kepada jarak terpendek antara gabungan pusat yang sama menggunakan laluan terpendek yang boleh dipercayai, seperti Pengiraan Dijkstra atau pengiraan Floyd−Warshall. Jika semua pemberat tepi pada laluan tertentu sepadan dengan pemadaman paling terhad, maka ia mewakili laluan paling mudah. Juga: Jika berat tepi keseluruhan lebih menonjol daripada jarak terpendek, ini menunjukkan bahawa terdapat jarak pendek antara dua pusat dalam graf. Kaedah Digunakan Algoritma Dijkstra Floyd−Warshall Algorithm dengan Kos Pembalikan Tepi Algoritma Greedy Pengiraan Dijkstra mungkin merupakan pengiraan traversal graf yang popular.

Dalam program C, terjemah kandungan berikut ke dalam bahasa Cina: Program untuk mencari nod ke-n dari bahagian bawah senarai terpaut Dalam program C, terjemah kandungan berikut ke dalam bahasa Cina: Program untuk mencari nod ke-n dari bahagian bawah senarai terpaut Sep 13, 2023 pm 03:13 PM

Diberi n nod, tugasnya adalah untuk mencetak nod ke-n pada penghujung senarai terpaut. Program ini tidak boleh mengubah susunan nod dalam senarai, tetapi hanya boleh mencetak nod ke-n dari nod terakhir senarai terpaut. Contoh Input-:102030405060 N=3Output-:40 Dalam contoh di atas, bermula dari nod pertama, traverse ke count-n nod, iaitu, 10,2030,40,50,60, jadi nod ketiga hingga terakhir ialah 40 . Daripada merentasi keseluruhan senarai dengan begitu cekap pendekatan yang boleh anda ikuti - dapatkan penunjuk sementara untuk, katakan, temp jenis nod tetapkan penunjuk sementara ini ke nod pertama yang ditunjuk oleh penuding kepala untuk menetapkan pembilang kepada yang dalam senarai

Dengan ChatGPT pemalam, ia adalah nod, tetapi bukan pusat Dengan ChatGPT pemalam, ia adalah nod, tetapi bukan pusat Apr 04, 2023 am 11:45 AM

OpenAI ialah nod (walaupun nod penting) dalam dunia dialog robot-robot, tetapi ia bukan pusatnya. ChatGPT telah melancarkan mekanisme Plugin, yang merupakan perkembangan yang sangat menarik. Semua orang sebulat suara mengulas bahawa "sistem pengendalian telah dilahirkan." Kenyataan ini adalah salah sama sekali. OpenAI ialah nod (walaupun nod penting) dalam dunia dialog robot-robot, tetapi ia bukan pusatnya. Saya sentiasa mempunyai gambaran dalam fikiran saya: dunia di mana robot bercakap dengan robot. Orang ramai berbual dengan robot dan membiarkan robot membantu manusia menyelesaikan tugas melalui rakan robotnya. Pemalam ChatGPT menunjukkan dunia dengan sempurna

See all articles