我有一個包含菜單項的數組。每個項目都有其parent_id。我正在尋找並嘗試了很多小時,但無法弄清楚如何遞歸遍歷數組。我不擅長遞歸。遞歸創建菜單數組
我試圖使用下面的帖子中的代碼。它生成的HTML菜單,但它錯過了第一條記錄也我想要一個數組,所以我可以自定義HTML菜單的陣列。
Using recursion to build navigation
我曾試圖從其他崗位這個代碼,但它返回空數組。
create_array(-1, $array);
function create_array($number, $data)
{
$result = array();
foreach ($data as $row)
{
if ($row['parent_id'] == $number)
{
$result[$row['id']] = create_array($row['id'], $data);
}
}
return $result;
}
數據陣列:
Array
(
[0] => Array
(
[id] => 1
[parent_id] => -1
[url] => /home
)
[1] => Array
(
[id] => 2
[parent_id] => 0
[url] => /page
)
[2] => Array
(
[id] => 3
[parent_id] => 2
[url] => /page/sub_page
)
[3] => Array
(
[id] => 4
[parent_id] => 3
[url] => /page/sub_page/inner_page/
)
)
結果期望:
home - page
sub_page
inner_page
任何幫助將非常理解請。
@larsAnders,該數據是從與自參考父ID的單個表。 id爲0是非子元素,-1是主頁其他willhave + vs id作爲父母id – Bsienn
$ number是什麼? – Adam
@ null05其主頁的起始頁面爲-1。該功能運行不正常。 – Bsienn