我需要此递归的帮助。 我在php上,并且有这个数组树
Array
(
[14|Erboristeria e Salute] => Array
(
[15] => Mal di gola e Cavo orale
[16] => Tosse e vie respiratorie
[17] => Naso irritato
[18] => Digestione e Gonfiore addominale
[19] => Emorroidi
[20] => Riposo notturno
[21] => Tono ed Energia
[22] => Controllo del peso
[23] => Benessere delle Gambe e Cellulite
[24] => Depurazione
[25] => Pomate
[37] => Dolori muscolari e Mal di testa
[53] => Igiene orale
[55] => Monoconcentrati
[58] => Stomaco e Intestino
[60] => Menopausa
[65] => Occhi irritati
[66] => Difese dell'organismo
[84] => Caramelle
[87] => Colesterolo e funzionalità cardiovascolare
[88] => Tisane
[127] => Succhi Attivi 100%
[130] => Cistite
[131] => Candida
)
[154|Prodotti per la casa] => Array
(
[38|Profumatori d'ambiente] => Array
(
[40] => Essenze naturali
[44] => Puri oli essenziali
[45] => Diffusori con bastoncini Nasoterapia
[85] => Profumatori Spray
[105] => Brucia essenze
[118] => Lampade catalitiche e ricariche
[133] => Buste profumate
[142] => Diffusori ultrasuoni
[149] => Ricariche diffusori con bastoncini
[150] => Diffusori in ceramica
[152] => Profumatori per auto
[153] => Profumatori L'Amande
)
[68] => Candele per ambiente
[109] => Candele Cilindriche
[123] => Prodotti naturali anti zanzare
[132] => Prodotti per la cura del cane
[181] => Idee regalo
)
[155|Cosmesi e Igiene] => Array
(
[6|Cura del viso] => Array
(
[54] => Aspersina Pharmalife - Bava di lumaca
[57|Linee Innoxa] => Array
(
[165] => Per pulire e stimolare
[166] => Linea idratazione giorno
[167] => Linea Autentica - rigenerante anti radicale
[168] => Super nutrimento con RNA e Omega3
[169] => Linea 41- pelle grassa, impura, acneica
[170] => Linea Couprosil - pelle sensibile e couperose
[171] => PG 33 - trattamento anti rughe
[172] => Linea Collagene - ritarda invecchiamento
[173] => Linea Naga - con sericina effetto tensore
[175] => Trattamenti intensivi rigeneranti
)
[61] => Contorno occhi
[63] => Pulizia Viso
[75] => Linea Olio Argan
[101] => Egasi Visage Amerigo
[102] => L'Amande Viso
[116] => Hyaluronic Bio Amerigo
[146] => Linea Activo 3 Oficine Cleman
[176] => Goji Bio Amerigo
[177] => Prodotti Flora Pisa
[178] => Viso Oficine Cleman
[179] => Acido Jaluronico
)
[7|Cura dei Capelli] => Array
(
[82] => Capelli con forfora
[98] => Capelli normali
[99] => Trattamenti capelli
[100] => Pediculosi
[134] => Capelli lisci
[135] => Capelli ricci e mossi
[136] => Capelli colorati
[137] => Capelli secchi e sfibrati
[138] => Capelli delicati e lavaggi frequenti
[139] => Capelli grassi e pesanti
[140] => Anti caduta capelli
[143] => Balsamo
[144] => Gel per capelli
)
[8|Cura del corpo] => Array
(
[29] => Igiene Intima
[30] => Cellulite e Tono Muscolare
[32] => Acque Profumate
[33|Creme corpo] => Array
(
[156] => Creme Corpo L'Amande
[157] => Creme Corpo Amerigo
[158] => Creme Corpo Speziali Fiorentini
[159] => Creme Corpo Oficine Cleman
[161] => Creme Corpo Flora Pisa
[162] => Creme Corpo Innoxa
[187] => Creme Dr Organic
)
[34] => Deodoranti
[36] => Oli vegetali corpo
[43] => Scrub
[77] => Prodotti per Ceretta
[160] => Oli profumati per il corpo
)
[9] => Prodotti per l'uomo
[10|Solari] => Array
(
[78] => Solari Innoxa
[79] => Solari L'Amande
[103] => Solari Amerigo
[180] => Solari Oficine Cleman
)
[11] => Saponi vegetali e Detergenti liquidi
[12|Prodotti per il bagno] => Array
(
[96] => Bagnoschiuma
)
[13|Cura delle mani] => Array
(
[62] => Cura e Igiene Mani
[104] => Crema per le mani
)
[26|Profumi] => Array
(
[125] => Eau de Parfum
)
[27] => Prodotti per i bambini
[28] => Cura dei piedi
[49|Trucchi e Make Up] => Array
(
[50] => Rossetti Hydrating
[51] => Fondotinta
[52] => Ombretti
[81] => Smalti Innoxa
[92] => Lucida Labbra
[93] => Rossetto Fluido
[95] => Rosso Labbra Soft Touche
[117] => Mascara
[121] => Fard
[141] => Creme colorate viso
[186] => Rossetti Color Lip finish luxury Mat
)
[59|Tinture per capelli] => Array
(
[128] => Naturidea
[147] => Henne in polvere
[184] => Mascara Henne
)
[76] => L'Amande Eco Bio
[83] => Candele da massaggio
[94] => Stick Labbra
[182] => Sapone Marino Naclean
)
)
我需要将此数组插入具有分层系统的db中。 因此,例如 14 | Erboristeria e Salute 具有1级,而 Mal di gola e Cavo orale 具有2级
以同样的方式, 154 | Prodotti per la casa 具有1级, 38 | Profumatori d'ambiente 具有2级和 Essenze naturali 级别为3 .........然后每个环境的烛光为级别2!
我该怎么做?我已经编写了此函数,并且可以正常工作,但是我不知道如何设置水平!
function readDeep($nodo)
{
foreach ($nodo as $k=>$v)
{
if (is_array($v))
{
echo "<div style='border:1px solid red; margin-bottom:2em'>";
echo "<b>".$k." </b>";
echo "<br />";
readDeep($v);
echo "</div>";
}
else
{
echo $v;
echo "<br />";
}
}
}
谢谢
答案 0 :(得分:1)
您需要将级别传递给函数,可以将其默认为第一级,然后在进行递归时将值传递回。因此定义变为...
function readDeep($nodo, $level = 1)
然后递归变为...
readDeep($v, $level+1);
答案 1 :(得分:0)
您可以简单地在递归函数中添加一个代表该级别的额外参数。首次调用它时,传入0(或根据口味,为1),然后递归调用时添加一个:
function readDeep($nodo, $level=0) {
// ...
readDeep($v, $level+1);
// ...
}