PHP二維資料排序,二維資料模糊查詢

來源:互聯網
上載者:User

標籤:結構   time   mount   www   amp   記錄   case   style   win   

一、因為項目中的一個報表需要合并三個表的資料,所以分表查詢再合并資料,利用PHP數組函數進行排序,搜尋。三表合并後的數組結構如下:

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] => 分組立即調度            [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] => 一小時備份頻率            [tasklog_user] => 系統自動            [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] => 華為虛擬化備份            [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自增非整數測試            [tasklog_user] => admin            [tasklog_type] => 立即調度            [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安裝MySQL            [tasklog_user] => impp.cc            [tasklog_type] => 策略備份            [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下檔案            [tasklog_user] => ppstorm.com            [tasklog_type] => 立即調度            [tasklog_status] => 2        ))

 

二、二維數組排序、搜尋

// 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));// 三表資料$vm_group = $this->safe->vm_group_task();$vm_tasklog = $this->safe->vm_tasklog();$vm_mounts_log = $this->safe->vm_mounts_log();// 合并資料$tasklog = array_merge($vm_group, $vm_tasklog, $vm_mounts_log);// !!! 二維資料搜尋 !!!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_record = count($tasklog);// 排序switch ($order) {    case 1:        $sort_key = ‘tasklog_name‘;        break;    case 2:        $sort_key = ‘tasklog_type‘;        break;    case 3:        $sort_key = ‘tasklog_user‘;        break;    case 4:        $sort_key = ‘tasklog_time‘;        break;    case 5:        $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); // !!! 二維資料排序 !!!// 取指定長度$output_arr = array_slice($tasklog, $start, $length);

 

PHP二維資料排序,二維資料模糊查詢

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.