【发布时间】:2014-08-01 18:56:42
【问题描述】:
我正在研究导航结构。 我正在使用父模型,所以我将所有子导航节点放入一个数组并将它们附加到父导航。
数组结构如下:
$navigation = array(
0 =>
array(
'id' => '2',
'parent_id' => '0',
'name' => 'abouts us',
'subNavigation' =>
array(
0 => array(
'id' => '3',
'parent_id' => '2',
'name' => 'Foo',
'subNavigation' =>
array(
0 => array(
'id' => '4',
'parent_id' => '3',
'name' => 'test',
'subNavigation' =>
array(),
),
1 => array(
'id' => '5',
'parent_id' => '3',
'name' => 'bar',
'subNavigation' =>
array(),
),
),
),
),
),
1 =>
array(
'id' => '6',
'parent_id' => '0',
'name' => 'Foobar',
'subNavigation' =>
array(
0 => array(
'id' => '7',
'parent_id' => '6',
'name' => 'ASDF',
'subNavigation' =>
array(),
),
),
),
);
现在我想搜索一个导航 ID,例如 ID = 5 (Navigation-Name = bar),结果应该是这个子导航的数组。
结果:
$result = array(
0 =>
array(
'id' => '2',
'parent_id' => '0',
'name' => 'abouts us',
'subNavigation' =>
array(
0 => array(
'id' => '3',
'parent_id' => '2',
'name' => 'Foo',
'subNavigation' =>
array(
0 => array(
'id' => '5',
'parent_id' => '3',
'name' => 'bar',
'subNavigation' =>
array(),
),
),
),
),
),
);
最快的方法是什么?哪个递归函数可以完成这项工作?
编辑: 我编辑了导航节点 5 的 parent_id ...哪里是错误的 parent_id
【问题讨论】:
标签: php recursion multidimensional-array