Jump to content

Optimise Recursive Function


jontilt

Recommended Posts

Hi there,

 

I have written a recursive function that basically generates a tree structure for my site pages (kind of like a sitemap). It all worked fine until yesterday, I started getting error messages telling me that I have exhausted the amount of memory available.

 

There are only about 30 pages in the site (parent, child, sub-child etc), so I dont think that I should be using up that much memory. This was my first attempt at a recursive function so I am pretty sure that it may not have been optimised properly.

 

If anyone could take a look and offer any feed back that would be great. (written in codeigniter framework)

 

      function getAllPages() {

 

$this->tmp_arr = array();

 

$this->buildPageStructure(0, 0);

 

return $this->tmp_arr;

 

}

 

 

 

function buildPageStructure($parent_id, $counter) {

 

$CI = & get_instance();

 

$query = $CI->db->query("SELECT page_id, title, page_url, status FROM pages WHERE parent_page='$parent_id' ORDER BY sort_order ASC");

 

$counter++;

 

if($query->num_rows() > 0) {

 

foreach($query->result() as $row) {

 

$new_arr = new Page();

 

$new_arr->page_id = $row->page_id;

$new_arr->title = $row->title;

$new_arr->level = $counter;

$new_arr->page_url = $row->page_url;

$new_arr->status = $row->status;

 

$this->tmp_arr[] = $new_arr;

 

$this->buildPageStructure($row->page_id, $counter);

 

 

}

 

 

}

 

}

 

Cheers

 

Jon

Link to comment
https://forums.phpfreaks.com/topic/235174-optimise-recursive-function/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.