如何删除 codeigniter 中的重复值数组?

How to remove duplicate value array in codeigniter?

我想在我的应用程序中制作 PDF 打印报告,我使用 codeigniter。这是我的 table

stock
-----------------------------------------------------
id_stock  code_brg   nama_brg       category_id_stock
-----------------------------------------------------
  1       CODE 01    BEANS RAKYAT         1
  2       CODE 02    BEANS BLEND HOT      1
  3       CODE 03    BEANS BLEND ICE      1
kategori
-----------------------------------------------------
id   code_kategori  kategori_brg
-----------------------------------------------------
 1      code01         BEANS
 2      code02         SYRUP
 3      code03         MILK
 4      code04         TOOLS

这个我的控制器

    public function print()
    {
        $this->load->library('dompdf_gen');
        $stock = $this->Model_Stock;
        $tgl_awal = $this->input->post('tgl_awal');
        $tgl_akhir = $this->input->post('tgl_akhir');
        $data["report"] = $stock->cetak($tgl_awal, $tgl_akhir);
        $result = array(
            'tgl_awal' => $tgl_awal,
            'tgl_akhir' => $tgl_akhir
        );
        $arr = array_merge($data,$result);
        $this->load->view('stock/report_all',$arr);
    }

这个我的模型

    public function cetak($tgl_awal, $tgl_akhir)
    {
        $this->db->select('*');
        $this->db->from($this->_table);
        $this->db->join('kategori_brg', 'kategori_brg.id = stock.category_id_stock');
        $this->db->join('satuan_brg', 'satuan_brg.id = stock.satuan_id');
        $this->db->where('tgl_entri >=',$tgl_awal);
        $this->db->where('tgl_entri <=',$tgl_akhir);
        $query = $this->db->get()->result_array();
        return $query;
    }

这个 MyView

    <table class="table" style="width: 100%;">
        <?php
            $no= 1;
            foreach($report as $key){
        ?>
        <tr>
            <td class="td_table" style="text-align: center;"><?= $key['kategori_brg']?></td>
        </tr>
        <tr>
            <td class="td_table" style="text-align: center;"><?= $no++ .''?></td>
            <td class="td_table" style="text-align: center;"><?= $key['code_brg']?></td>
            <td class="td_table" style="text-align: center;"><?= $key['nama_brg']?></td>
            <td class="td_table" style="text-align: center;"><?= $key['satuan_pcs']?></td>
            <td class="td_table" style="text-align: center;"><?= $key['stock_awal']?></td>
            <td class="td_table" style="text-align: center;"><?= $key['stock_masuk']?></td>
            <td class="td_table" style="text-align: center;"><?= $key['stock_keluar']?></td>
            <td class="td_table" style="text-align: center;"><?= $key['stock_sisa']?></td>
        </tr>
        
        <?php
            }
        ?>
    </table>

我想这样打印my expectations This my result my result,我试过使用distinct,但是没用。

我该如何解决这个问题?

看看这是否有效。将您的视图更改为:

    <table class="table" style="width: 100%;">
    <?php
    $no= 1;
  //store categories in array
    $kategori_brg_arr=array();

    foreach($report as $key)
    {
      array_push($kategori_brg_arr,$key['kategori_brg']);
    }

    $kategori_brg_arr=array_unique($kategori_brg_arr);
     
    //group categories
    foreach($kategori_brg_arr as $kategori_brg){
      foreach($report as $key){
        if($key['kategori_brg']==$kategori_brg){
          ?>
          <tr>
            <td class="td_table" style="text-align: center;"><?= $key['kategori_brg']?></td>
          </tr>
          <tr>
            <td class="td_table" style="text-align: center;"><?= $no++ .''?></td>
            <td class="td_table" style="text-align: center;"><?= $key['code_brg']?></td>
            <td class="td_table" style="text-align: center;"><?= $key['nama_brg']?></td>
            <td class="td_table" style="text-align: center;"><?= $key['satuan_pcs']?></td>
            <td class="td_table" style="text-align: center;"><?= $key['stock_awal']?></td>
            <td class="td_table" style="text-align: center;"><?= $key['stock_masuk']?></td>
            <td class="td_table" style="text-align: center;"><?= $key['stock_keluar']?></td>
            <td class="td_table" style="text-align: center;"><?= $key['stock_sisa']?></td>
          </tr>

          <?php
        }
      }
    }
    ?>  
  </table>

您可以在您的类别字段上使用 ORDER BY,以便将所有具有相同类别的数据分组在一起,然后在您的 foreach 中,您可以 push 每个类别 array 并根据需要显示数据,像这样 -

型号

public function cetak($tgl_awal, $tgl_akhir)
{
    $this->db->select('*');
    $this->db->from($this->_table);
    $this->db->join('kategori_brg', 'kategori_brg.id = stock.category_id_stock');
    $this->db->join('satuan_brg', 'satuan_brg.id = stock.satuan_id');
    $this->db->where('tgl_entri >=',$tgl_awal);
    $this->db->where('tgl_entri <=',$tgl_akhir);
    $this->db->order_by("kategori_brg", "ASC"); // ORDER BY kategori_brg 
    $query = $this->db->get()->result_array();
    return $query;
} 

查看

<table class="table" style="width: 100%;">
    
<?php
        
$no = 1;
$category = array(); // initialize array which will contain the categories
        
foreach($report as $key){
            
    if(!in_array($key['kategori_brg'], $category)){ // check if category exists in the array
                
        $category[] = $key['kategori_brg']; // insert the value in the array and show it as a heading
?>
        <tr>
            <td class="td_table" style="text-align: center;"><?= $key['kategori_brg']?></td>
        </tr>
<?php

    } 

?>
    <tr>
        <td class="td_table" style="text-align: center;"><?= $no++ .''?></td>
        <td class="td_table" style="text-align: center;"><?= $key['code_brg']?></td>
        <td class="td_table" style="text-align: center;"><?= $key['nama_brg']?></td>
        <td class="td_table" style="text-align: center;"><?= $key['satuan_pcs']?></td>
        <td class="td_table" style="text-align: center;"><?= $key['stock_awal']?></td>
        <td class="td_table" style="text-align: center;"><?= $key['stock_masuk']?></td>
        <td class="td_table" style="text-align: center;"><?= $key['stock_keluar']?></td>
        <td class="td_table" style="text-align: center;"><?= $key['stock_sisa']?></td>
    </tr>
    
<?php

}
    
?>

</table>

希望对你有帮助。