如何将子列表从数据库记录代码点火器分组到特定列表


How to group sublist to a specific list from database record codeigniter?

我知道可以使用数据库中的记录将子列表分组到php中的特定列表中,但我很难获得它。例如,我有一个列表类型,如袋子鞋子。现在我想根据它们的类型显示一个项目列表,即袋子和鞋子。这些物品将被列为袋子和鞋子的子列表。现在的问题是,我只使用php中的foreach函数来循环。

要实现的示例输出:

行李

  • 背包
  • 水桶袋
  • 行李包

鞋子

  • 凉鞋
  • 靴子
  • 平面

控制器:

$data['items'] = $this->item_model->get_items('items');
$this->load->view('items', $data);

型号:

public function get_items () {
  $output = $this->db->get('items');
  return $output->result();
 }

视图:

<?php foreach ($items as $item):?>
  <li class="list-group-item view" draggble="true">
    <span class="handle">::</span> <?php echo $item->type; ?> //Bags or Shoes
  </li>
   <ul class="list-group list-group-sortable">
    <li class="list-group-item view"><span class="handle">::</span>
     <span class="badge badge-complete">Complete</span>
     <a href="#"><?php echo $item->item_title; ?></a> //Item title
    </li>
   </ul>
<?php endforeach; ?>

利用arrays,在关联数组中相应地排列输出,然后按您想要的任何顺序调用它,我认为以下内容可能会帮助您实现所需的结果-

$list = [];
function get_sublist($title){
  return '<ul class="list-group list-group-sortable">
        <li class="list-group-item view"><span class="handle">::</span>
         <span class="badge badge-complete">Complete</span>
         <a href="#">'.$title.'</a>
        </li>
       </ul>';
}
 foreach ($items as $item){
    switch(strtolower($item->type)){
      case "bags":
        $list['bags']['title'] = 
         '<li class="list-group-item view" draggble="true">
            <span class="handle">::</span>'.$item->type.'</li>';
        @$list['bags']['sublist'] .= get_sublist($item->item_title);
      break;
      case "shoes":
        $list['shoes']['title'] = 
         '<li class="list-group-item view" draggble="true">
           <span class="handle">::</span>'.$item->type.'</li>';
        @$list['shoes']['sublist'] .= get_sublist($item->item_title);
      break;
      //add any more types
    }
 }
 echo $list['bags']['title'];
  echo $list['bags']['sublist'];
  echo "<br />";
   echo $list['shoes']['title'];
  echo $list['shoes']['sublist'];