Php 如何通过循环将同一标题下的数据分组

Php 如何通过循环将同一标题下的数据分组,php,codeigniter,loops,Php,Codeigniter,Loops,我试图从两个连接的表中获取数据,从一个表中收集列表标题,从第二个连接的表中收集列表数据 型号代码: function view_searching_type_items() { $this->db->select("searching_type.searchtype_name, search_type_item.st_item_id_pk, search_type_item.searchtype_itemname"); $this->db->from('searc

我试图从两个连接的表中获取数据,从一个表中收集列表标题,从第二个连接的表中收集列表数据

型号代码:

function view_searching_type_items()
{
  $this->db->select("searching_type.searchtype_name, search_type_item.st_item_id_pk, search_type_item.searchtype_itemname");
  $this->db->from('searching_type');
  $this->db->join('search_type_item', 'search_type_item.st_id_fk = searching_type.st_id_pk');
  $query = $this->db->get();
  return $query->result_array(); 
}
控制器:

$url1 = 'http://localhost/pakistanmenu/index.php/Restaurant/ViewSearchingTypeItems';
    $curl_hand = curl_init($url1);
    curl_setopt($curl_hand, CURLOPT_TIMEOUT, 5);
    curl_setopt($curl_hand, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($curl_hand, CURLOPT_RETURNTRANSFER, true);
    $data1 = curl_exec($curl_hand);// json_decode($data)
    curl_close($curl_hand);
    $result['searchingtype'] = (array) json_decode($data1,true);

    $this->load->view('header');
    $this->load->view('index',$result);
    $this->load->view('footer');
查看代码:

<?php foreach ($searchingtype as $searchingtyp):?>

 <ul class="list-group checked-list-box">
    <h1 class="page-header leftsidebar-heading"><?php echo $searchingtyp['searchtype_name'];?></h1>

     <li class="list-group-item" data-style="button" style="cursor: pointer;">
         <span class="state-icon glyphicon glyphicon-unchecked">

         </span>

         <?php echo $searchingtyp['searchtype_itemname'];?>

         <input type="checkbox" class="hidden">

     </li>

请检查下面的图片,我已经显示了这段代码的输出,而且我已经画出了我需要的输出。谢谢,请帮助我。谢谢


只需存储姓氏,并仅在新名称与姓氏不同时打印。我们还将在发生这种情况时创建新的列表,以便每个组有不同的列表

<?php 
// Define our test variable
$lastName = null;

foreach ($searchingtype as $searchingtyp):
?>

    <?php 
    if ($lastName != $searchingtyp['searchtype_name']): 
        // It's not the same name
        if ($lastName != null):
            // Close the previous list (except from the first iteration).
        ?>
            </ul>
        <?php
        endif;
        ?>

     ?>
        <ul class="list-group checked-list-box">
            <li><h1 class="page-header leftsidebar-heading"><?php echo $searchingtyp['searchtype_name'];?></h1></li>
    <?php 
        // Store the current name so we can check again in the next iteration
        $lastName = $searchingtyp['searchtype_name'];
    endif;
    ?>

// The rest of your code.. just move the </ul> after the loop.

<?php endforeach ?>

</ul>

又快又脏:

检查标题是否与以前使用的标题不同

if($title != $lasttitle){
 echo 'title foo';
}
在循环结束时:

$lasttitle = title;

是的,先生,现在标题的输出不再重复,但我如何才能列出一组标题与我在图表中显示的标题相同的数据。@Magnus Eriksson非常感谢您,先生,您很棒,您的答案非常有效,您节省了我的时间@马格纳斯·埃里克森:不用担心。如果可以,也可以随意投票。:-)好的,我必须解锁upvote特权,然后我才能进行upvote。谢谢@Magnus Eriksson