溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP數(shù)組轉(zhuǎn)樹結(jié)構(gòu)以及樹結(jié)構(gòu)轉(zhuǎn)數(shù)組的示例

發(fā)布時(shí)間:2021-02-24 10:03:57 來源:億速云 閱讀:178 作者:清風(fēng) 欄目:編程語言

本文將為大家詳細(xì)介紹“PHP數(shù)組轉(zhuǎn)樹結(jié)構(gòu)以及樹結(jié)構(gòu)轉(zhuǎn)數(shù)組的示例”,內(nèi)容步驟清晰詳細(xì),細(xì)節(jié)處理妥當(dāng),而小編每天都會(huì)更新不同的知識點(diǎn),希望這篇“PHP數(shù)組轉(zhuǎn)樹結(jié)構(gòu)以及樹結(jié)構(gòu)轉(zhuǎn)數(shù)組的示例”能夠給你意想不到的收獲,請大家跟著小編的思路慢慢深入,具體內(nèi)容如下,一起去收獲新知識吧。

php有什么用

php是一個(gè)嵌套的縮寫名稱,指的是英文超級文本預(yù)處理語言(php:Hypertext Preprocessor)的縮寫,它的語法混合了C、Java、Perl以及php自創(chuàng)新的語法,主要用來做網(wǎng)站開發(fā),許多小型網(wǎng)站都用php開發(fā),因?yàn)閜hp是開源的,從而使得php經(jīng)久不衰。

public function index()
    {
        $data = [
            [
                'id'=>1,
                'parent_id' => 0,
                'name' => '第一個(gè)'
            ],

            [
                'id'=>2,
                'parent_id' => 0,
                'name' => '第二個(gè)'
            ],

            [
                'id'=>3,
                'parent_id' => 1,
                'name' => '第三個(gè)'
            ],

        ];
        $r = $this->list_to_tree($data);
        dump($r);
    }

PHP數(shù)組轉(zhuǎn)樹結(jié)構(gòu)以及樹結(jié)構(gòu)轉(zhuǎn)數(shù)組的示例

#數(shù)組轉(zhuǎn)樹結(jié)構(gòu)#

function list_to_tree($list, $root = 0, $pk = 'id', $pid = 'parent_id', $child = 'children'){
    // 創(chuàng)建Tree
    $tree = array();
    if (is_array($list)) {
        // 創(chuàng)建基于主鍵的數(shù)組引用
        $refer = array();
        foreach ($list as $key => $data) {
            $refer[$data[$pk]] = &$list[$key];
        }
        foreach ($list as $key => $data) {
            // 判斷是否存在parent
            $parentId = 0;
            if (isset($data[$pid])) {
                $parentId = $data[$pid];
            }
            if ((string)$root == $parentId) {
                $tree[] = &$list[$key];
            } else {
                if (isset($refer[$parentId])) {
                    $parent = &$refer[$parentId];
                    $parent[$child][] = &$list[$key];
                }
            }
        }
    }
    return $tree;}

#樹結(jié)構(gòu)轉(zhuǎn)數(shù)組#

function tree_to_list($tree = [], $children = 'children'){
    if (empty($tree) || !is_array($tree)) {
        return $tree;
    }
    $arrRes = [];
    foreach ($tree as $k => $v) {
        $arrTmp = $v;
        unset($arrTmp[$children]);
        $arrRes[] = $arrTmp;
        if (!empty($v[$children])) {
            $arrTmp = tree_to_list($v[$children]);
            $arrRes = array_merge($arrRes, $arrTmp);
        }
    }
    return $arrRes;}

如果你能讀到這里,小編希望你對“PHP數(shù)組轉(zhuǎn)樹結(jié)構(gòu)以及樹結(jié)構(gòu)轉(zhuǎn)數(shù)組的示例”這一關(guān)鍵問題有了從實(shí)踐層面最深刻的體會(huì),具體使用情況還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想閱讀更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI