How to return multiple arrays from a function in codeigniter?

前端 未结 2 428
失恋的感觉
失恋的感觉 2021-01-14 16:04

I am having this function in my controller.

function get_data($year, $month) {

        $query = $this->db->select(\'date,name,type\')->from(\'books         


        
相关标签:
2条回答
  • 2021-01-14 16:31

    You can do it in following way,

    function get_data($year, $month) {
    
        $query = $this->db->select('date,name,type')->from('books')->like('date', "$year-$month", 'after')->get();
        $data = array();
        $data1 = array();
        $data2 = array();
    
    
        foreach ($query->result() as $row) {
            if ($row->name == 'AA' && $row->type == 'AM') {
                $data[substr($row->date, 8, 2)] = '<div class="aa_am">' . $row->name . ' ' . $row->type . '</div>';
            } else if ($row->name == 'AA' && $row->type == 'PM') {
                $data1[substr($row->date, 8, 2)] = '<div class="aa_pm">' . $row->name . ' ' . $row->type . '</div>';
            } else if ($row->name == 'BB' && $row->type == 'AM') {
                $data2[substr($row->date, 8, 2)] = '<div class="bb_am">' . $row->name . ' ' . $row->type . '</div>';
            } 
        }
    $return['data']=$data;
    $return['data1']=$data1;
    $return['data2']=$data2;
        return $data;
    }
    

    you can acces in view as varible,

    $data['index'], $data1['index'], $data2['index']
    

    if you want to merge them then,

    array_merge($data,$data1,$data2);
    
    0 讨论(0)
  • 2021-01-14 16:42

    From your code, I don't know what result you expect by combining all data which is in $data, $data1 and $data2.

    but you can try array_merge(array1,array2,array3...) function if you want all data where key starting from 0 and increases by 1 for each value.

    Or else you can create another array with all data values like,

    return array("data" => $data, "data1" => $data1, "data2" => $data2)

    by this way you can achieve what you want.

    0 讨论(0)
提交回复
热议问题