2013-06-06 3 views
0

Я хочу сделать динамическое падение в CI.I сделал это в CI, напрямую передавая значения из модели. С его дизайном конкатенация html. Но теперь я хочу его без html, т. Е. Функция должна только вернуться массив ... мой, прежде чем функция была что-то вроде этого ...Как сделать динамическое падение в php?

function category() { 
     $sql = $this->db->query("select * from ss_category where parent_id='0'"); 
     $result = $sql->result(); 
     //print_r($result);die(); 
     $output = array(); 
     foreach ($result as $ra) { 
      $output=$this->get_child($ra->cat_id); 
        } 
     //print_r($output);die(); 
     return $output; 
    } 

    function get_child($parent_id) { 
     //echo "select * from ss_category where parent_id=" . $parent_id; 
     $sql = $this->db->query("select * from ss_category where parent_id=" . $parent_id); 
     $r = $sql->result(); 

     if (!empty($r)) { 
      foreach ($r as $s) { 
        $this->get_child($s->cat_id); 
      } 
      //print_r($child); 
     } 
     //print_r($r); 
    } 

Я хочу, чтобы упасть вниз что-то вроде этого ..

-parent 1 
     -child 1 
      -subchild 1 
     -child 2 
     -child 3 
      -subchild 1 
    -parent 2 
     -child 1 

Моя структура таблицы, как это ..

+---------------------------------------------------------------+ 
| cat_id category_name cat_slug  parent_id level description | 
+---------------------------------------------------------------+ 
| 1  Elecotronics Electronics 1    description | 
+---------------------------------------------------------------+ 
+0

вам понадобится вложенный 'foreach' :) 3x, отредактируйте свое сообщение и добавьте структуры таблицы, спасибо. – Kyslik

+0

Как определяется 'subchild'? Пожалуйста, заполните еще две строки в таблице, которые представляют вашу древовидную структуру (subchild 1, child 2), спасибо. – Kyslik

+0

Уважаемый Kyslik, я хочу сделать выпадающее меню, в котором родитель может иметь любое количество дочерних элементов, а ребенок может быть родителем, если у него есть дочерний элемент i.e.subchild ... – Drudge

ответ

0
function parent_sort($categories) 
{ 
    foreach($categories as $item) 
     $childs[$item->parent_id][] = $item; 

    foreach($categories as $item) 
     if (isset($childs[$item->category_id])) 
      $item->childs = $childs[$item->category_id]; 

    return $childs[0]; 
} 
Смежные вопросы