One, because a report in the project needs to merge data from three tables, the table query then merges the data and uses the PHP array functions to sort and search. The three-table merged array is structured as follows:
Array( [0] = =Array([history_id]= 12[sla_group_id]= 1[sla_id]+ =-1[Create_time]= 1513057695[tasklog_id]= 12[Tasklog_time]= 2017-12-12 13:48:15[Tasklog_name]=window_2008 [Tasklog_type]=group Immediate Dispatch [Tasklog_user]=admin [Tasklog_status]= 3 ) [1] = =Array([history_id]= 11[sla_group_id]= 1[sla_id]= 1[Create_time]= 1513057563[tasklog_id]= 11[Tasklog_time]= 2017-12-12 13:46:03[Tasklog_name]=Centos7_ushark [Tasklog_type]=one-hour backup frequency [Tasklog_user]=system automatic [Tasklog_status]= 3 ) [2] = =Array([history_id]= 19[sla_group_id]= 1[sla_id]= 98[Create_time]= 1513059714[tasklog_id]= 19[Tasklog_time]= 2017-12-12 14:21:54[Tasklog_name]=huawei_fusion_backup [Tasklog_type]=Huawei Virtualization Backup [Tasklog_user]= Ushark.net [Tasklog_status] + 2 ) [3] = =Array([history_id]= 41[sla_group_id]= 0[sla_id]+ =-1[Create_time]= 1513069534[status]= 2[tasklog_id]= 41[Tasklog_time]= 2017-12-12 17:05:34[Tasklog_name]= centos7-11 self-increment non-integer test [tasklog_user]=admin [Tasklog_type]=immediate Dispatch [Tasklog_status]= 2 ) [4] = =Array([history_id]= 40[sla_group_id]= 0[sla_id]+ =-1[Create_time]= 1513067574[status]= 2[tasklog_id]= 40[Tasklog_time]= 2017-12-12 16:32:54[Tasklog_name]=win2008 installing MySQL [tasklog_user]= = Impp.cc [Tasklog_type]=policy Backup [Tasklog_status]= 2 ) [5] = =Array([history_id]= 39[sla_group_id]= 0[sla_id]+ =-1[Create_time]= 1513067399[status]= 2[tasklog_id]= 39[Tasklog_time]= 2017-12-12 16:29:59[Tasklog_name]=Linux under File [Tasklog_user]= = Ppstorm.com [tasklog_type]=immediate Dispatch [Tasklog_status]= 2 ))
Two or two-d array sorting, searching
//HTTP GET Values$length= (int)$this->input->get (' Length ',true);$start= (int)$this->input->get (' Start ',true);$order=Trim($this->input->get (' Order ',true));$sort=Trim($this->input->get (' dir ',true));$search=Trim($this->input->get (' Search ',true));//three-table data$VM _group=$this->safe->Vm_group_task ();$VM _tasklog=$this->safe->Vm_tasklog ();$VM _mounts_log=$this->safe->Vm_mounts_log ();//Merging Data$tasklog=Array_merge($VM _group,$VM _tasklog,$VM _mounts_log);//!!! Two-dimensional data search!!!if(!Empty($search)) { foreach($tasklog as $sk=$SV) { if(Mb_stripos ($SV[' Tasklog_name '],$search) ===false&& Mb_stripos ($SV[' Tasklog_type '],$search) ===false&& Mb_stripos ($SV[' Tasklog_user '],$search) ===false ) { unset($tasklog[$sk]); Continue; } }}//Total Records$total _record=Count($tasklog);//SortSwitch($order) { Case1:$sort _key= ' Tasklog_name '; Break; Case2:$sort _key= ' Tasklog_type '; Break; Case3:$sort _key= ' Tasklog_user '; Break; Case4:$sort _key= ' Tasklog_time '; Break; Case5:$sort _key= ' Tasklog_status '; Break; default:$sort _key= ' tasklog_id '; Break;}$sort _arr= Array_column ($tasklog,$sort _key);$desc _ASC=$sort= = = ' desc '? Sort_desc:Sort_asc;Array_multisort($sort _arr,$desc _ASC,$tasklog); !!! Two-dimensional data sorting!!! //take the specified length$output _arr=Array_slice($tasklog,$start,$length);
PHP Two-dimensional data sorting, two-dimensional data fuzzy query