第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何使用PHP提取多維數(shù)組樹的一部分

如何使用PHP提取多維數(shù)組樹的一部分

PHP
千萬里不及你 2021-04-27 13:10:34
我有一棵巨大的動(dòng)態(tài)生成的樹。該樹是根據(jù)每個(gè)元素的“ parent_id”屬性從平面數(shù)組生成的。例如,最終結(jié)果將如下所示:Array(    [0] => Array        (            [id] => 70            [name] => Top Corp            [parent_id] => 0            [children] => Array                (                    [0] => Array                        (                            [id] => 43                            [name] => Department                            [parent_id] => 70                            [children] => Array                                (                                    [0] => Array                                        (                                            [id] => 45                                            [name] => Building                                            [parent_id] => 43                                            [children] => Array                                                (                                                    [0] => Array                                                        (                                                            [id] => 75                                                            [name] => Office                                                            [parent_id] => 45                                                        )                                                )                                        )如何僅提取陣列樹的一部分?我應(yīng)該看什么功能或方法?例如,我怎么說另一個(gè)子級(jí)別(可能深20-30個(gè)級(jí)別)現(xiàn)在位于頂部。例如,的偽函數(shù)sliceTree(45)應(yīng)產(chǎn)生以下結(jié)果,也就是從樹開始id 45[0] => Array    (        [id] => 45        [name] => Building        [parent_id] => 43        [children] => Array            (                [0] => Array                    (                        [id] => 75                        [name] => Office                        [parent_id] => 45                    )            )    )沒有辦法知道樹可以走多深,因此它的解決方案需要遞歸。我曾嘗試循環(huán)數(shù)組,尋找起始ID,但是我不確定在找到該點(diǎn)之后如何繼續(xù)執(zhí)行。哪個(gè)有效,但僅適用于頂級(jí)元素。我該如何遞歸并解釋兒童的多個(gè)層次?
查看完整描述

1 回答

?
白衣染霜花

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超10個(gè)贊

該sliceTree()函數(shù)基本上會(huì)查找某個(gè)確定id值并將其返回。像這樣的東西:


function sliceTree($tree, $branchId)

{

    // check all branches

    foreach ($tree as $branch) {

        // have we found the correct branch?

        if ($branch['id'] == $branchId) return $branch;

        // check the children

        if (isset($branch['children'])) {

            $slice = sliceTree($branch['children'], $branchId);

            if (isset($slice)) return $slice;

        } 

    }

    // nothing was found

    return null;

}

如您所見,該例程是遞歸的。代碼未經(jīng)測(cè)試。


我為混合的隱喻感到抱歉:分支機(jī)構(gòu)和子級(jí),但是您是從頭開始的。


此功能比我希望的要復(fù)雜一些,因?yàn)樵谀氖纠?,children當(dāng)沒有子代時(shí)該鍵不存在。我通常希望它在那里并且該值是一個(gè)空數(shù)組。


查看完整回答
反對(duì) 回復(fù) 2021-05-28
  • 1 回答
  • 0 關(guān)注
  • 177 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)