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);