Php 如何从codeigniter中的函数返回多个数组?

Php 如何从codeigniter中的函数返回多个数组?,php,arrays,codeigniter,Php,Arrays,Codeigniter,我的控制器中有这个功能 function get_data($year, $month) { $query = $this->db->select('date,name,type')->from('books')->like('date', "$year-$month", 'after')->get(); $data = array(); $data2 = array(); $data3 = arra

我的控制器中有这个功能

function get_data($year, $month) {

        $query = $this->db->select('date,name,type')->from('books')->like('date', "$year-$month", 'after')->get();
        $data = array();
        $data2 = array();
        $data3 = 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') {
                $data2[substr($row->date, 8, 2)] = '<div class="aa_pm">' . $row->name . ' ' . $row->type . '</div>';
            } else if ($row->name == 'BB' && $row->type == 'AM') {
                $data3[substr($row->date, 8, 2)] = '<div class="bb_am">' . $row->name . ' ' . $row->type . '</div>';
            } 
        }
        return $data;
    }
函数获取数据($year,$month){
$query=$this->db->select('date,name,type')->from('books')->like('date',“$year-$month','after')->get();
$data=array();
$data2=array();
$data3=array();
foreach($query->result()作为$row){
如果($row->name='AA'&&$row->type='AM'){
$data[substr($row->date,8,2)]='.$row->name'.$row->type'.';
}如果($row->name='AA'&&&$row->type=='PM'){
$data2[substr($row->date,8,2)]='.$row->name'.$row->type'.';
}如果($row->name='BB'&&&$row->type=='AM'){
$data3[substr($row->date,8,2)]='.$row->name'.$row->type'.';
} 
}
返回$data;
}

我想同时检索$data、$data1和$data2中的所有数据。有可能吗??如果有人有主意的话,那会对我有帮助

您可以按以下方式进行操作

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;
}
如果你想合并它们

array_merge($data,$data1,$data2);

从您的代码中,我不知道通过组合$data、$data1和$data2中的所有数据,您期望得到什么结果

但是,如果希望所有数据中的键从0开始,并且每个值增加1,则可以尝试使用
array\u merge(array1、array2、array3…
函数

或者您可以创建另一个包含所有数据值的数组,如

返回数组(“数据”=>$data,“数据1”=>$data1,“数据2”=>$data2)


通过这种方式,您可以实现您想要的。

返回数组($data、$data2、$data3)
,其他选项是
返回数组\u合并($data,$data1,$data2)
。数组合并有可能在任何键相同的情况下丢失数据。这是一种家庭作业还是什么?因为这是用同样的代码发布的,所以我认为这应该是可行的。但是它没有给我预期的输出,因为我检查条件的方式是错误的。这里,如果第一个条件为真,则不会检查其他条件。我要检查所有的条件。有没有这样做的想法?试着调试它并检查数据是如何来的。使用
print\r($query->result())
然后
print\r($row->name)
array_merge($data,$data1,$data2);