我有一個像下面的樹,其中包含第n級權限。搜索數組,並找到depedent項目
Landing Page Footer Archive
|| || ||
|| || ||
Current ========== Pipeline=== BHI Phonebook==Password Keeper Edit==View==Delete
|| ||
Open Forms Open Forms
|| ||
Blog Request Blog Request
|| ||
Add == Edit Add == Edit
樣本陣列
$list = Array
(
[0] => Array
(
[parent] => 0
[item_level] => 1
[id] => 1
[display_name] => Landing Page
)
[1] => Array
(
[parent] => 1
[item_level] => 2
[id] => 2
[display_name] => Current
)
[2] => Array
(
[parent] => 2
[item_level] => 3
[id] => 5
[display_name] => Open Forms
)
[3] => Array
(
[parent] => 5
[item_level] => 4
[id] => 9
[display_name] => Blog Request
)
[4] => Array
(
[parent] => 9
[item_level] => 5
[id] => 10
[display_name] => Add
)
[5] => Array
(
[parent] => 9
[item_level] => 5
[id] => 11
[display_name] => Update
)
[6] => Array
(
[parent] => 1
[item_level] => 2
[id] => 3
[display_name] => Pipeline
)
[7] => Array
(
[parent] => 3
[item_level] => 3
[id] => 6
[display_name] => Open Forms
)
[8] => Array
(
[parent] => 6
[item_level] => 4
[id] => 12
[display_name] => Blog Request
)
[9] => Array
(
[parent] => 12
[item_level] => 5
[id] => 13
[display_name] => Add
)
[10] => Array
(
[parent] => 12
[item_level] => 5
[id] => 14
[display_name] => Update
)
[11] => Array
(
[parent] => 1
[item_level] => 2
[id] => 4
[display_name] => BHI
)
[12] => Array
(
[parent] => 1
[item_level] => 2
[id] => 7
[display_name] => Add Property
)
[13] => Array
(
[parent] => 1
[item_level] => 2
[id] => 8
[display_name] => Show Child Properties
)
[14] => Array
(
[parent] => 0
[item_level] => 1
[id] => 15
[display_name] => Footer
)
[15] => Array
(
[parent] => 15
[item_level] => 2
[id] => 16
[display_name] => Phonebook
)
[16] => Array
(
[parent] => 15
[item_level] => 2
[id] => 17
[display_name] => Password Keeper
)
[17] => Array
(
[parent] => 0
[item_level] => 1
[id] => 18
[display_name] => Archive
)
[18] => Array
(
[parent] => 18
[item_level] => 2
[id] => 19
[display_name] => Edit
)
[19] => Array
(
[parent] => 18
[item_level] => 2
[id] => 20
[display_name] => View
)
[20] => Array
(
[parent] => 18
[item_level] => 2
[id] => 21
[display_name] => Delete
)
)
期望輸出
//Here Key is the value of "id" attribute
$final_output = array(
1 => array(
2=>array(5=>array(9=>array(10,11))),
3=>array(6=>array(12=>array(13,14))),
4,//As it doesnt have any child
7,//As it doesnt have any child
8 //As it doesnt have any child
),
15 => array(
16, //As it doesnt have any child
17 ////As it doesnt have any child
),
18 => array(
19, //As it doesnt have any child
20, ////As it doesnt have any child
21 ////As it doesnt have any child
),
);
這裏,1:着陸頁,15:頁腳,18:存檔(它的 「id」 屬性)等等
上面的數組後,我將不得不做第n級循環。
喜歡:
foreach($final_output as $res)
{
if(is_array($res))
{
//Then do something, i am not sure how this achivable
}
}
是我迄今所做的,但沒有成功。
//To find out the how manhy levels are in array
$unique_level = array_unique(array_map(function ($i) { return $i['item_level']; }, $list));
$parent_data = $level_data = array();
foreach($list as $key=>$res)
{
if($res['parent']==0)
{
if(!array_key_exists($res['id'],$parent_data)) // First insert all unique parent at level 1
{
$parent_data[$res['id']] = $res;
}
}
$level_data[$res['parent']][] = array(
'display_name' => $res['display_name'],
'id' => $res['id'],
'parent' => $res['parent'],
);
}
準備好使用JSON
[{ 「父」: 「0」, 「item_level」: 「1」, 「ID」 爲 「1」, 「DISPLAY_NAME」:「着陸頁「},{」 親本 「:」 1" , 「item_level」: 「2」, 「ID」: 「2」, 「DISPLAY_NAME」: 「當前」},{ 「父」: 「2」, 「item_level」: 「3」,「id」:「5」,「display_name」:「打開表單」},{「parent」:「5」,「item_level」:「4」,「id」:「9」 :「Blog Request」},{「parent」:「9」,「item_level」:「5」,「id」:「10」,「display_name」:「Add」},{「parent」:「9」, 「item_level」: 「5」, 「ID」: 「11」, 「DISPLAY_NAME」: 「更新」},{ 「親本」: 「1」, 「item_level」: 「2」, 「ID」: 「3」, 「display_name」:「Pipeline」},{「parent」:「3」,「item_level」:「3」,「id」:「6」,「display_name」:「Open Forms」},{「parent」:「 6" , 「item_level」: 「4」, 「ID」: 「12」,「DISPLA y_name「:」Blog Request「},{」parent「:」12「,」item_level「:」5「,」id「:」13「,」display_name「:」Add「},{」parent「:」12 「 」item_level「: 」5「, 」ID「: 」14「, 」DISPLAY_NAME「: 」更新「},{ 」親本「: 」1「, 」item_level「: 」2「, 」ID「:」 4 「,」display_name「:」BHI「},{」parent「:」1「,」item_level「:」2「,」id「:」7「,」display_name「:」添加屬性「}, :「1」,「item_level」:「2」,「id」:「8」,「display_name」:「顯示子屬性」},{「parent」:「0」,「item_level」:「1」 ID 「:」 15" , 「DISPLAY_NAME」: 「頁腳」},{ 「父」: 「15」, 「item_level」: 「2」, 「ID」: 「16」, 「DISPLAY_NAME」: 「電話簿」}, {「parent」:「15」,「item_level」:「2」,「id」:「17」,「display_name」:「密碼管理器」},{「parent」:「0」,「item_level」:「1 「 」ID「: 」18「, 」DISPLAY_NAME「: 」歸檔「},{ 」父「: 」18「, 」item_level「: 」2「, 」ID「: 」19「, 」DISPLAY_NAME「:」 編輯「},{」 父 「:」 18" , 「item_level」: 「2」, 「ID」: 「20」, 「DISPLAY_NAME」: 「查看」},{ 「父」: 「18」, 「item_level」: 「2」,「id」:「21」,「display_name」:「刪除」}]
值元件4謝謝你這麼多它像一個魅力的工作。 – DS9
很高興能夠提供幫助。你能標記爲答案,謝謝:) –