我过去一小时尝试过的功能是让我生成相同页面的平面数组,但是孩子们在他们之前拥有父母头衔 到目前为止我能做到的是获得1级父母,我需要这背后的逻辑,我可以做代码,主要的一点就是在select菜单中有一个数组来获取 即:
Parent
parent / Sub 1
Parent / Sub 1 / Sub 2
Parent 2
parent 2 / Sub 1
Parent 2 / Sub 1 / Sub 2
我的数组看起来像这样:
Array (
[0] => Array (
[object]=>menuObject
[title]=>title
[parent_id]=>parent_id
[children]=>array(
[0] => Array (
[object]=>menuObject
[title]=>title
[parent_id]=>parent_id
[children]=>''
)
)
)
);
我需要的数组如下:
Array(
[14]=>'parent / sub / sub 1'
//[ID]=>[Title]
)
答案 0 :(得分:0)
好吧,经过很长一段时间,我想出了一个方法来实现2个功能, 第一个展平数组,另一个找出路径,虽然我不得不查询数据库来实现它
public function parseSelectArray($tree)
{
$return=array();
foreach ($tree as $key => $value) {
//The other function call to create the path
$return[$key]=Controller_Admin_Pages::createPath($key);
}
return empty($return) ? null : $return;
}
public function createPath($id) {
//Query the page, though I could get the value from the array.
$page=Model_Page::find($id);
if($page->idparent == 0) {
$name = $page->title;
return $name;
} else {
$name = $page->title;
return Controller_Admin_Pages::createPath($page->idparent). " / ".$name;
}
}