亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

php無限極分類深度如何控制

php無限極分類深度如何控制

PHP
aluckdog 2022-11-04 16:30:14
這是我的數組: $list = array(        array('id' => 3, 'name' => 'Phones', 'parent_id' => 0,),        array('id' => 256, 'name' => 'Accessories', 'parent_id' => 0,),        array('id' => 308, 'name' => 'Appliances', 'parent_id' => 0,),        array('id' => 1057, 'name' => 'Smart', 'parent_id' => 0,),        array('id' => 1065, 'name' => 'Smart Phones', 'parent_id' => 3,),        array('id' => 1066, 'name' => 'Feature Phones', 'parent_id' => 3,),        array('id' => 1069, 'name' => 'Samsung', 'parent_id' => 1065,),        array('id' => 1070, 'name' => 'Apple', 'parent_id' => 1065,),        array('id' => 1072, 'name' => 'Apple', 'parent_id' => 1066,),        array('id' => 1075, 'name' => 'Tablets', 'parent_id' => 0,),        array('id' => 1076, 'name' => 'Samsung', 'parent_id' => 1066,),        array('id' => 1077, 'name' => 'All Brands', 'parent_id' => 1075,),        array('id' => 1078, 'name' => 'Samsung', 'parent_id' => 1077,),        array('id' => 1079, 'name' => 'Protector', 'parent_id' => 256,),        array('id' => 1080, 'name' => 'Power', 'parent_id' => 256,),        array('id' => 1081, 'name' => 'Cable', 'parent_id' => 256,),        array('id' => 1082, 'name' => 'Memory', 'parent_id' => 256,),    );這是我分類的代碼:function  quote_make_tree($list,$deep=1, $root = 0){    $tree = $packData = [];    foreach ($list as $row) {        $packData[$row['id']] = $row;    }    foreach ($packData as $key => $val) {        if ($val['parent_id'] == $root) {            $tree[] = &$packData[$key];        } else {            $packData[$val['parent_id']]['children'][] = &$packData[$key];        }    }    return $tree;}我想添加一個深度參數$deep來quote_make_tree控制分類的深度。if $deep = 2,獲取level 1分類下的level 2分類,if $deep=3,獲取所有1,2,3分類我已經嘗試先獲取所有數據,然后根據$deep.here is demo刪除數據,謝謝大家
查看完整描述

1 回答

?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

使用遞歸方法可能更容易解決。這使您可以檢查深度,如果您想要更多細節,那么它將調用自己添加更多層。每次稱自己時,您只需從深度中刪除一個...


function  quote_make_tree($list, $deep=1, $root = 0) {

    $output = [];

    foreach ( $list as $listItem )  {

        if ( $listItem['parent_id'] == $root ) {

            if ( $deep > 1 )    {

                $listItem['children'] = quote_make_tree($list, $deep-1, $listItem['id']);

            }

            $output[] = $listItem;

        }

    }

    return $output;

}


查看完整回答
反對 回復 2022-11-04
  • 1 回答
  • 0 關注
  • 134 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號