首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在多维数组中显示循环级别

在多维数组中显示循环级别
EN

Stack Overflow用户
提问于 2018-07-07 16:11:58
回答 2查看 33关注 0票数 1

我需要帮助来解决这个问题。我在php上,我有一个数组树

代码语言:javascript
复制
    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有1级,Mal di gola e Cavo orale有2级

同样的,154\Prodotti每la casa有1级,38\Profumatori d'ambiente有2级,Essenze naturali有级别3......then Candele (每种环境有2级)!

我怎么能这么做?我写了这个函数,它可以工作,但我不知道如何设置水平!

代码语言:javascript
复制
    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 />";
            }
        }
    }

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-07 16:21:58

您需要将该级别传递给函数,您可以将其默认为第一个级别,然后在执行递归时将值传回。所以定义变成..。

代码语言:javascript
复制
function readDeep($nodo, $level = 1)

然后递归变成..。

代码语言:javascript
复制
readDeep($v, $level+1);
票数 1
EN

Stack Overflow用户

发布于 2018-07-07 16:23:03

您可以简单地向表示级别的递归函数中添加一个额外的参数。当您第一次调用它时,传入0(或1,根据口味),然后在调用它时,递归地添加一个:

代码语言:javascript
复制
function readDeep($nodo, $level=0) {
    // ...
    readDeep($v, $level+1);
    // ...
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51224848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档