我有一个包含菜单项的数组。每个项目都有其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