遞迴處理無限級分類為樹形陣列

2021-07-25 21:19:31 字數 1210 閱讀 4824

處理乙個無限分類問題,之前是用的多級ajax實現,但是衡量了一下,總資料量不大,決定用樹形陣列組織一下資料形成js檔案,直接放到頁面裡

<?php

error_reporting(0);

function formate_arr(&$arrdata,$arrmdata,$intl)

else

unset($arrmdata[$intl]);

foreach($arrdata[$intl] as $intk => $strv)}}

if(count($arrmdata) == 0)

return $arrdata;

}$arrservice = $arrmdata = $arrdata = array();

$arrtmp = array(

'0'=>array('id'=>1,'parentid'=>0,'name'=>'111'),

'1'=>array('id'=>2,'parentid'=>0,'name'=>'222'),

'2'=>array('id'=>3,'parentid'=>1,'name'=>'333'),

'3'=>array('id'=>4,'parentid'=>1,'name'=>'444'),

'4'=>array('id'=>5,'parentid'=>3,'name'=>'555'),

'5'=>array('id'=>6,'parentid'=>3,'name'=>'666'),

'6'=>array('id'=>7,'parentid'=>4,'name'=>'777'),

'7'=>array('id'=>8,'parentid'=>7,'name'=>'888'),

'8'=>array('id'=>9,'parentid'=>2,'name'=>'999'),

'9'=>array('id'=>10,'parentid'=>9,'name'=>'000'),

'10'=>array('id'=>11,'parentid'=>9,'name'=>'101')

);foreach ($arrtmp as $arrsingle)

formate_arr($arrdata,$arrmdata,0);

$arrdata = $arrdata[0];

print_r($arrdata);

?>

(無限級 非遞迴)樹形分類

記得之前有一次去面試,被問了無限級怎麼做。我想很簡單,就說了最基本的結構 id name parentid。又被問就這樣嗎?顯然不被滿意。後面自然就沒通過面試。遇上技術型面試官,如果問的技術問題不被滿意,大抵就沒有下文了。遇上那些一副老子技術天下第一,狗眼看人低的面試官,那就自認倒霉吧。遇上追問你如...

樹形資料的無限級別(遞迴實現)

從後台獲取到資料根據前端的需要重組資料,因為後端沒有component所以得依據後端資料匹配前端的路由拿到component 下面是兩個模擬的資料 模擬後端的資料 let ceshi 模擬前端的資料 key代表component let ceshi1 資料都準備完成,下面是遞迴的方法,不知道為什麼 ...

遞迴遍歷無限級分類

有時候我們會有這樣的需求。將一張無限級分類表,處理好層級關係 例如,選擇選擇部門的上級關係 表資料格式。pid 0 為頂級 id pid name 1 0 行政 2 1 主管 3 0 人事 4 3 經理 5 4 員工轉換格式為以下格式,普通現實方法為,使用sql一層層去查詢。我們可以一次把所有資料拿...