我有一個遞歸函數的問題,需要太多的資源才能在下拉列表中顯示子父母關係。例如:遞歸表子女父母關係
home
-menu 1
-menu 2
home 1
-menu 3
-menu 4
我寫對數據庫每次遞歸調用一些代碼,所以這就是爲什麼我的代碼需要這麼多的資源來運行的原因。
下面是我的代碼:
--call遞歸
$tmp = $this->get_nav_by_parent(0);
$a_sel = array('' => '-Select-');
$a_sel_cat = array('home' => 'home');
$this->get_child_nav_cat($tmp, 0, $a_sel);
-
public function get_nav_by_parent($parent) {
$all_nav = $this->db
->select('id, title, parent')
->where('parent',$parent)
->order_by('position')
->get('navigation_links')
->result_array();
$a_tmp = array();
foreach($all_nav as $item)
{
if($parent != 0){
$item['title'] = '--' . $item['title'];
}
$a_tmp[] = $item;
}
return $a_tmp;
}
- 遞歸函數
public function get_child_nav_cat($a_data, $parent, &$a_sel) {
foreach($a_data as $item) {
$a_sel[$item['page_slug_key']] = $item['title'];
$atmp = $this->get_nav_by_parent($item['id']);
$this->get_child_nav_cat($atmp, $item['id'], $a_sel);
}
return $a_sel;
}
請給我您的建議最好的解決方案在選擇框中將數據顯示爲子父母關係。 在此先感謝!
請檢查我的回答希望這將幫助你。 – Roopendra 2013-04-24 09:32:57