我知道可以使用数据库中的记录将子列表分组到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'];